рдпрд╣ рд▓реЗрдЦ
рд╕рдмрд╕реЗ рдЫреЛрдЯреЗ рдХреЗ рд▓рд┐рдП рд▓реЗрдЦ
рд╕реНрд╡рдЪрд╛рд▓рди рдХреА рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рджреМрд░рд╛рди рдЫреЛрдЯреЗ рдиреЛрдЯреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред
рдЪреВрдВрдХрд┐ IPAM рд╕рд┐рд╕реНрдЯрдо рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХрд╛ рдореБрдЦреНрдп рддрд░реАрдХрд╛ RESTful API рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрд▓рдЧ рд╕реЗ рдмрд╛рдд рдХрд░рдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛ред
рдореИрдВ рдЖрдзреБрдирд┐рдХ рджреБрдирд┐рдпрд╛ рдХреЗ рд╡рд╛рд╕реНрддреБрдХрд╛рд░реЛрдВ рдХреА рдкреНрд░рд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдорд╛рдирдХреАрдХреГрдд рдЗрдВрдЯрд░рдлреЗрд╕ рд╣реИрдВред рд╣рд╛рдВ, рдЙрдирдореЗрдВ рд╕реЗ рдХрдИ рд╣реИрдВ - рдпрд╣ рдПрдХ рдЛрдг рд╣реИ, рд▓реЗрдХрд┐рди рд╡реЗ рд╣реИрдВ - рдпрд╣ рдПрдХ рдкреНрд▓рд╕ рд╣реИред
рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдиреЗ рдПрдкреАрдЖрдИ - рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдЗрдВрдЯрд░рдлреЗрд╕ рдирд╛рдо рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рд╣реИред
рдЗрди рдЗрдВрдЯрд░рдлреЗрд╕ рдореЗрдВ рд╕реЗ рдПрдХ RESTful API рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЗрдЯрдмреЙрдХреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдпрджрд┐ рдпрд╣ рдмрд╣реБрдд рд╕рд░рд▓ рд╣реИ, рддреЛ рдПрдкреАрдЖрдИ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдПрдХ рдЯреВрд▓ рдХрд╛ рд╕реЗрдЯ рджреЗрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╣ рд╕рд░реНрд╡рд░ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдХреБрдЫ рднреА рд╣реЛ рд╕рдХрддрд╛ рд╣реИ: рдПрдХ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░, рдПрдХ рдХрдорд╛рдВрдб рдХрдВрд╕реЛрд▓, рдирд┐рд░реНрдорд╛рддрд╛ рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╕рд┐рдд рдПрдХ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рдпрд╛ рдХреЛрдИ рдЕрдиреНрдп рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдЬреЛ рдПрдкреАрдЖрдИ рддрдХ рдкрд╣реБрдВрдЪ рд░рдЦрддрд╛ рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЗрдЯрдмреЙрдХреНрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдЖрдк рдирд┐рдореНрди рддрд░реАрдХреЛрдВ рд╕реЗ рдЗрд╕рдореЗрдВ рдПрдХ рдирдпрд╛ рдЙрдкрдХрд░рдг рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ: рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рдЕрдиреБрд░реЛрдз рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдкреЛрд╕реНрдЯрдореИрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЕрдЬрдЧрд░ рдореЗрдВ рдЕрдиреБрд░реЛрдз рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдкрд╛рдпрд▓реЗрдЯрдмреЙрдХреНрд╕ рдПрд╕рдбреАрдХреЗ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдпрд╛ рд╕реНрд╡реИрдЧрд░ рдкрд░ рдЬрд╛рдПрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдмрд╛рд░ рдПрдХ рдЗрдВрдЯрд░рдлреЗрд╕ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдирд┐рд░реНрдорд╛рддрд╛ рд╣рдореЗрд╢рд╛ рдЕрдкрдиреЗ рдЖрдк рдХреЛ рдкреНрд░рддреНрдпреЗрдХ рдирдП рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕рд╛рде рд╕рд╣рдордд рд╣реЛрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╕реЗ рдореБрдХреНрдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдереЛрдбрд╝рд╛ рдЪрд╛рд▓рд╛рдХ рд╣реИ)ред
рд╕рд╛рдордЧреНрд░реА
- REST, RESTful, API
- HTTP рд╕рдВрджреЗрд╢ рд╕рдВрд░рдЪрдирд╛
- рд╕реНрдЯрд╛рд░реНрдЯ рд▓рд╛рдЗрди
- рд╕реБрд░реНрдЦрд┐рдпреЛрдВ рдореЗрдВ
- HTTP рд╕рдВрджреЗрд╢ рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ
- рддрд░реАрдХреЛрдВ
- HTTP рдЬреАрдИрдЯреА
- HTTP POST
- HTTP PUT
- HTTP PATCH
- HTTP DELETE
- рд░реЗрд╕реНрдЯрдлреБрд▓ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ
- рдХрд░реНрд▓
- рдкрддреНрд░рд╡рд╛рд╣рдХ
- рдкрд╛рдпрдерди + рдЕрдиреБрд░реЛрдз
- Pynebtbox рдПрд╕рдбреАрдХреЗ
- рдЕрдХрдбрд╝
- рдЖрд░рдИрдПрд╕рдЯреА рдФрд░ рд╡рд┐рдХрд▓реНрдк рдХреА рдЖрд▓реЛрдЪрдирд╛
- рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
REST, RESTful, API
рдиреАрдЪреЗ рдореИрдВ рдмрд╣реБрдд рд╕рд░рд▓ рд╡рд┐рд╡рд░рдг рджреВрдВрдЧрд╛ рдХрд┐ REST рдХреНрдпрд╛ рд╣реИред
рд╢реБрд░реБрдЖрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
RESTful API рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ
REST- рдЖрдзрд╛рд░рд┐рдд рдЗрдВрдЯрд░реИрдХреНрд╢рди
рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ , рдЬрдмрдХрд┐
REST (
REpretational State Transfer ) рд╕реНрд╡рдпрдВ WEB рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рддрд┐рдмрдВрдзреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИред
рд░реЙрдп рдлреАрд▓реНрдбрд┐рдВрдЧ рдХреЗ рд╢реЛрдз рдкреНрд░рдмрдВрдз, рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╢реИрд▓рд┐рдпрд╛рдБ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ-рдЖрдзрд╛рд░рд┐рдд рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХреЗ рдЕрдзреНрдпрд╛рдп 5 рдореЗрдВ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╕реАрдорд╛рдПрдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрдврд╝рдирд╛ рд╕рдВрднрд╡ рд╣реИред рдореБрдЭреЗ рдЖрдк рдЙрдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рддреАрди рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг (рдореЗрд░реЗ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ) рджреЗрдВ:
- REST рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред
- рдкреНрд░рддреНрдпреЗрдХ REST рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЗрд╕рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣реЛрддреА рд╣реИред рдпрд╣реА рд╣реИ, рд╕рд░реНрд╡рд░ рдХреЛ рдкрд┐рдЫрд▓реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рднреА рдпрд╛рдж рдирд╣реАрдВ рд░рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬреЛ рдХрд┐ рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдЬрд╛рдирддреЗ рд╣реИрдВ, рд╕реНрдЯреЗрдЯрд▓реЗрд╕ рд╢рдмреНрдж рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ - рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рди рдХрд░реЗрдВред
- рдПрдХреАрдХреГрдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ред рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЙрд╕ рд╕реЗрд╡рд╛ рд╕реЗ рдЕрд▓рдЧ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬрд╛рдирддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░рдиреА рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХреИрд╕реЗ рд╣реЛрддрд╛ рд╣реИ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ред рдЬрдм рдЖрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╕рдорд╛рди рд░рд╣рддрд╛ рд╣реИ, рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рдорд╛рдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИред
WEB рд╕реЗрд╡рд╛рдПрдБ рдЬреЛ REST рдХреЗ рд╕рднреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЛ рд╕рдВрддреБрд╖реНрдЯ рдХрд░рддреА рд╣реИрдВ,
RESTful WEB рд╕реЗрд╡рд╛рдПрдБ рдХрд╣рд▓рд╛рддреА рд╣реИрдВред
рдФрд░ RESTful WEB рд╕реЗрд╡рд╛рдПрдВ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ API рдХреЛ RESTful API рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
REST рдПрдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рддрдерд╛рдХрдерд┐рдд рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╢реИрд▓реА (рдПрдХ) рд╣реИред рд░реЙрдп рдлреАрд▓реНрдбрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ HTTP рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд, REST рдХрд╛ рдЗрд░рд╛рджрд╛
HTTP 1.1 рдХреЛ рдкрд░рд┐рд╡рд╣рди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдерд╛ред
рдЧрдВрддрд╡реНрдп рдкрддрд╛ (рдпрд╛ рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ - рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ, рдпрд╛ рдХрд┐рд╕реА рдЕрдиреНрдп рддрд░реАрдХреЗ рд╕реЗ - рдПрдХ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ) - рдпрд╣ рд╣рдорд╛рд░рд╛ рд╕рд╛рдорд╛рдиреНрдп
рдпреВрдЖрд░рдЖрдИ рд╣реИ ред
рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХрд╛ рдкреНрд░рд╛рд░реВрдк
XML рдпрд╛
JSON рд╣реИ ред
рд▓рд┐рдВрдХрдореЗрдк рдкрд░ рд▓реЗрдЦреЛрдВ рдХреА рдЗрд╕ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд▓рд┐рдП, рдПрдХ рд░реАрдб-рдУрдирд▓реА рдкрд░рд┐рдирд┐рдпреЛрдЬрди (рдЖрдкрдХреЗ рд▓рд┐рдП, рдкреНрд░рд┐рдп рдкрд╛рдардХреЛрдВ рдХреЗ рд▓рд┐рдП) рддреИрдирд╛рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдиреЗрдЯрдмреЙрдХреНрд╕ рдЗрдВрд╕реНрдЯреЙрд▓реЗрд╢рди: netbox.linkmeup.ru : 45127ред
рдкрдврд╝рдиреЗ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рдЯреЛрдХрди рдХреЗ рд╕рд╛рде рдкрдврд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЯреЛрдХрди рдПрдкреАрдЖрдИ: 90a22967d0bc4bdcd8ca47ec490bbf0b0cb2dc8 ред
рдЪрд▓реЛ рдордЬрд╝реЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ:
curl -X GET -H "Authorization: TOKEN 90a22967d0bc4bdcd8ca47ec490bbf0b0cb2d9c8" \ -H "Accept: application/json; indent=4" \ http://netbox.linkmeup.ru:45127/api/dcim/devices/1/
рдпрд╣реА рд╣реИ,
рдХрд░реНрд▓ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЗ рд╕рд╛рде, рд╣рдо
netbox.linkmeup.ru рдкрд░ рдПрдХ
GET рдСрдмреНрдЬреЗрдХреНрдЯ
рдмрдирд╛рддреЗ рд╣реИрдВ : 45127 / api / dcim / рдбрд┐рд╡рд╛рдЗрд╕ / 1 / JSON рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░
4 рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдХреЗ рдПрдХ рдЗрдВрдбреЗрдВрдЯ рдХреЗ рд╕рд╛рдеред
рдпрд╛ рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдХрд╛рджрдорд┐рдХ рд░реВрдк рд╕реЗ: рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП
рдбрд┐рд╡рд╛рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЬреЛ
DCIM рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛ рдПрдХ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реИред
рдЖрдк рдЗрд╕ рдЕрдиреБрд░реЛрдз рдХреЛ рднреА рдкреВрд░рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдмрд╕ рдЗрд╕реЗ рдЕрдкрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рдХреЙрдкреА рдХрд░реЗрдВред
рдЬрд┐рд╕ URL рдХрд╛ рд╣рдо рдЕрдиреБрд░реЛрдз рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЙрд╕реЗ рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдПрдХ рдорд╛рдпрдиреЗ рдореЗрдВ, рдпрд╣ рдЕрдВрддрд┐рдо рд╡рд╕реНрддреБ рд╣реИ рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдмрд╛рддрдЪреАрдд рдХрд░реЗрдВрдЧреЗред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдиреЗрдЯрдмреЙрдХреНрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдпрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИ ред
рдФрд░ URL рдХреЗ рдЕрдВрдд рдореЗрдВ / рд╕рд╛рдЗрди рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рдпрд╣ рдЖрд╡рд╢реНрдпрдХ рд╣реИ ред
рдпрд╣рд╛рдБ рд╣рдореЗрдВ рдЬрд╡рд╛рдм рдореЗрдВ рдХреНрдпрд╛ рдорд┐рд▓рд╛ рд╣реИ:
{ "id": 1, "name": "mlg-host-0", "display_name": "mlg-host-0", "device_type": { "id": 4, "url": "http://netbox.linkmeup.ru/api/dcim/device-types/4/", "manufacturer": { "id": 4, "url": "http://netbox.linkmeup.ru/api/dcim/manufacturers/4/", "name": "Hypermacro", "slug": "hypermacro" }, "model": "Server", "slug": "server", "display_name": "Hypermacro Server" }, "device_role": { "id": 1, "url": "http://netbox.linkmeup.ru/api/dcim/device-roles/1/", "name": "Server", "slug": "server" }, "tenant": null, "platform": null, "serial": "", "asset_tag": null, "site": { "id": 6, "url": "http://netbox.linkmeup.ru/api/dcim/sites/6/", "name": "", "slug": "mlg" }, "rack": { "id": 1, "url": "http://netbox.linkmeup.ru/api/dcim/racks/1/", "name": "A", "display_name": "A" }, "position": 41, "face": { "value": "front", "label": "Front", "id": 0 }, "parent_device": null, "status": { "value": "active", "label": "Active", "id": 1 }, "primary_ip": null, "primary_ip4": null, "primary_ip6": null, "cluster": null, "virtual_chassis": null, "vc_position": null, "vc_priority": null, "comments": "", "local_context_data": null, "tags": [], "custom_fields": {}, "config_context": {}, "created": "2020-01-14", "last_updated": "2020-01-14T18:39:01.288081Z" }
рдпрд╣ JSON рд╣реИ (рдЬреИрд╕рд╛ рдХрд┐ рд╣рдордиреЗ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛), рдЖрдИрдбреА 1 рдХреЗ рд╕рд╛рде рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рд╡рд░реНрдгрди: рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХрд┐рд╕ рднреВрдорд┐рдХрд╛ рдХреЗ рд╕рд╛рде, рдХреМрди рд╕рд╛ рдореЙрдбрд▓, рдХрд╣рд╛рдВ рдЦрдбрд╝рд╛ рд╣реИ, рдЖрджрд┐ред
рдпрд╣ рдПрдХ HTTP рдЕрдиреБрд░реЛрдз рдХреА рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:
GET /api/dcim/devices/1/ HTTP/1.1 Host: netbox.linkmeup.ru:45127 User-Agent: curl/7.54.0 Accept: application/json; indent=4
рддреЛ рдЬрд╡рд╛рдм рджрд┐рдЦреЗрдЧрд╛:
HTTP/1.1 200 OK Server: nginx/1.14.0 (Ubuntu) Date: Tue, 21 Jan 2020 15:14:22 GMT Content-Type: application/json Content-Length: 1638 Connection: keep-alive Data
рд▓реЗрди-рджреЗрди рдбрдВрдк рдХрд░реЗрдВ ред
рдЕрдм рдпрд╣ рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рд╣рдордиреЗ рдХреНрдпрд╛ рдХрд┐рдпрд╛ рд╣реИред
HTTP рд╕рдВрджреЗрд╢ рд╕рдВрд░рдЪрдирд╛
рдПрдХ HTTP рд╕рдВрджреЗрд╢ рдореЗрдВ рддреАрди рднрд╛рдЧ рд╣реЛрддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдХреЗрд╡рд▓ рдкрд╣рд▓реА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
- рд╕реНрдЯрд╛рд░реНрдЯ рд▓рд╛рдЗрди
- рд╕реБрд░реНрдЦрд┐рдпреЛрдВ рдореЗрдВ
- рд╕рдВрджреЗрд╢ рд╢рд░реАрд░
рд╕реНрдЯрд╛рд░реНрдЯ рд▓рд╛рдЗрди
HTTP рдЕрдиреБрд░реЛрдз рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреА рдЖрд░рдВрдн рд░реЗрдЦрд╛рдПрдБ рдЕрд▓рдЧ-рдЕрд▓рдЧ рджрд┐рдЦрддреА рд╣реИрдВред
HTTP рдЕрдиреБрд░реЛрдз
METHOD URI HTTP_VERSION
рд╡рд┐рдзрд┐ рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреА рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХ рдХреНрдпрд╛ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ: рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВ, рдЗрд╕реЗ рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ, рдЗрд╕реЗ рд╣рдЯрд╛рдПрдВред
URI - рдЙрд╕ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛, рдЬрд╣рд╛рдБ рдЧреНрд░рд╛рд╣рдХ рдкрд╣реБрдБрдЪрддрд╛ рд╣реИ, рдпрд╛ рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рд╕рдВрд╕рд╛рдзрди / рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдорд╛рд░реНрдЧред
HTTP_VERSION рдХреНрд░рдорд╢рдГ HTTP рд╕рдВрд╕реНрдХрд░рдг рд╣реИред рдЖрдЬ, REST рдХреЗ рд▓рд┐рдП, рдпрд╣ рд╣рдореЗрд╢рд╛ 1.1 рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
GET /api/dcim/devices/1/ HTTP/1.1
HTTP рд░рд┐рд╕реНрдкрд╛рдВрд╕
HTTP_VERSION STATUS_CODE REASON_PHRASE
HTTP_VERSION - HTTP рд╕рдВрд╕реНрдХрд░рдг (1.1)ред
STATUS_CODE - рд╕реНрдЯреЗрдЯрд╕ рдХреЛрдб рдХреЗ рддреАрди рдЕрдВрдХ (200, 404, 502, рдЖрджрд┐)
REASON_PHRASE - рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг (рдареАрдХ рд╣реИ, рдлрд╝реЙрдЗрдВрдб, рдмреАрдПрдб рдЧреЗрдЯрд╡реЗ, рдЖрджрд┐)
рдПрдХ рдЙрджрд╛рд╣рд░рдг:
HTTP/1.1 200 OK
рд╕реБрд░реНрдЦрд┐рдпреЛрдВ рдореЗрдВ
рд╢реАрд░реНрд╖ рд▓реЗрдЦ рдЗрд╕ HTTP рд▓реЗрди-рджреЗрди рдХреЗ рд▓рд┐рдП рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, HTTP рдЕрдиреБрд░реЛрдз рдореЗрдВ рдКрдкрд░ рджрд┐рдП рдЧрдП рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдпреЗ рдереЗ:
Host: netbox.linkmeup.ru:45127 User-Agent: curl/7.54.0 Accept: application/json; indent=4
рд╡реЗ рд╕рдВрдХреЗрдд рдХрд░рддреЗ рд╣реИрдВ
- рд╣рдо рд╣реЛрд╕реНрдЯ netbox.linkmeup.ru:45127 рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ ,
- рдЕрдиреБрд░реЛрдз рдХрд░реНрд▓ рдореЗрдВ рдЙрддреНрдкрдиреНрди рд╣реБрдЖ рдерд╛,
- рдФрд░ рд╣рдо JSON рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рдбреЗрдЯрд╛ рдХреЛ 4 рдХреЗ рдЗрдВрдбреЗрдВрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреЗ рд╣реИрдВред
рдФрд░ рдпрд╣рд╛рдБ HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реЗрдбрд░ рд╣реИрдВ:
Server: nginx/1.14.0 (Ubuntu) Date: Tue, 21 Jan 2020 15:14:22 GMT Content-Type: application/json Content-Length: 1638 Connection: keep-alive
рд╡реЗ рд╕рдВрдХреЗрдд рдХрд░рддреЗ рд╣реИрдВ
- рд╕рд░реНрд╡рд░ рдкреНрд░рдХрд╛рд░: Ubuntu рдкрд░ nginx ,
- рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдордп
- рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк: JSON
- рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдбреЗрдЯрд╛ рд▓рдВрдмрд╛рдИ: 1638 рдмрд╛рдЗрдЯреНрд╕
- рдХрдиреЗрдХреНрд╢рди рдХреЛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ - рдЕрднреА рднреА рдбреЗрдЯрд╛ рд╣реЛрдЧрд╛ред
рд╣реЗрдбрд░, рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рджреЗрдЦ рдЪреБрдХреЗ рд╣реИрдВ, рдирд╛рдо рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ: рдореВрд▓реНрдп рдЬреЛрдбрд╝реЗ, рдПрдХ ":" рдЪрд┐рд╣реНрди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧред
рд╕рдВрднрд╛рд╡рд┐рдд рд╣реЗрдбрд░ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА ред
HTTP рд╕рдВрджреЗрд╢ рдХрд╛ рдореБрдЦреНрдп рднрд╛рдЧ
рд╢рд░реАрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдбреЗрдЯрд╛ рдХреЛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рдпрд╣ рдПрдХ HTML рдкреГрд╖реНрда рдпрд╛ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ JSON рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╣реЗрдбрд░ рдФрд░ рд╢рд░реАрд░ рдХреЗ рдмреАрдЪ рдХрдо рд╕реЗ рдХрдо рдПрдХ рд░рд┐рдХреНрдд рд░реЗрдЦрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред
HTTP рдЕрдиреБрд░реЛрдз рдореЗрдВ GET рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╕рдордп, рдЖрдорддреМрд░ рдкрд░ рдХреЛрдИ рдирд┐рдХрд╛рдп рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╕рдВрдЪрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рд╢рд░реАрд░ HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╣реИред
рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, POST рдХреЗ рд╕рд╛рде, рд╢рд░реАрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдиреБрд░реЛрдз рдореЗрдВ рд╣реЛрдЧрд╛ред рдЖрдЗрдП рдЕрдм рддрд░реАрдХреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВред
рддрд░реАрдХреЛрдВ
рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рдкрд╣рд▓реЗ рд╣реА рд╕рдордЭ рдЪреБрдХреЗ рд╣реИрдВ, HTTP WEB рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рд╡рд╣реА RESTful API рдХреЗ рд▓рд┐рдП рдЬрд╛рддрд╛ рд╣реИред
рд╕рдВрднрд╛рд╡рд┐рдд рд╡рд╛рд╕реНрддрд╡рд┐рдХ рдЬреАрд╡рди рдХреЗ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХрд╛ рд╡рд░реНрдгрди
CRUD - рдХреНрд░рд┐рдПрдЯ, рд░реАрдб, рдЕрдкрдбреЗрдЯ, рдбрд┐рд▓реАрдЯ рджреНрд╡рд╛рд░рд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ ред
рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рд▓реЛрдХрдкреНрд░рд┐рдп HTTP рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬреЛ CRUD рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддреА рд╣реИ:
- HTTP рдЬреАрдИрдЯреА
- HTTP POST
- HTTP PUT
- HTTP DELETE
- HTTP PATCH
рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ
рдХреНрд░рд┐рдпрд╛ рднреА рдХрд╣рд╛ рдЬрд╛рддрд╛
рд╣реИ , рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреНрдпрд╛ рдХреНрд░рд┐рдпрд╛ рдХреА рдЬрд╛рддреА рд╣реИред
рддрд░реАрдХреЛрдВ рдХреА рдкреВрд░реА рд╕реВрдЪреА ред
рдЖрдЗрдП рдиреЗрдЯрдмреЙрдХреНрд╕ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЛ рджреЗрдЦреЗрдВред
HTTP рдЬреАрдИрдЯреА
рдпрд╣ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╣рдо рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдХреЛ рд╣рдЯрд╛ рджреЗрддреЗ рд╣реИрдВ:
curl -H "Accept: application/json; indent=4" \ http://netbox.linkmeup.ru:45127/api/dcim/devices/
рдЬреАрдИрдЯреА рд╡рд┐рдзрд┐
рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдбреЗрдЯрд╛ рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдкреВрдЫрддрд╛ рд╣реИред
рдпрд╣ рдЗрд╕ рджреГрд╖реНрдЯрд┐ рд╕реЗ
рдЙрджрд╛рд╕реАрди рд╣реИ рдХрд┐ рдПрдХ рд╣реА рдХреНрд╡реЗрд░реА рд╣рдореЗрд╢рд╛ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИ (рдЬрдм рддрдХ рдХрд┐ рдбреЗрдЯрд╛ рд╕реНрд╡рдпрдВ рдмрджрд▓ рдирд╣реАрдВ рдЧрдпрд╛ рд╣реИ)ред
GET рдкрд░, рд╕рд░реНрд╡рд░ HTTP рдХреЛрдб рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд┐рдХрд╛рдп (
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб рдФрд░
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдирд┐рдХрд╛рдп ) рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрджреЗрд╢ рджреЗрддрд╛ рд╣реИред
рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИ, рддреЛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб 200 (рдареАрдХ) рд╣реИред
рдпрджрд┐ URL рдирд╣реАрдВ рдорд┐рд▓рд╛ рд╣реИ, рддреЛ 404 (FOUND рдирд╣реАрдВ)ред
рдпрджрд┐ рд╕рд░реНрд╡рд░ рдпрд╛ рдШрдЯрдХреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдЧрд▓рдд рд╣реИ, рддреЛ рдпрд╣ 500 (рд╕рд░реНрд╡рд░ рддреНрд░реБрдЯрд┐) рдпрд╛ 502 (рдмреАрдПрдбреА рдЧреЗрдЯрд╡реЗ) рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
рд╕рднреА рд╕рдВрднрд╡ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб ред
рдирд┐рдХрд╛рдп рдХреЛ JSON рдпрд╛ XML рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд▓реМрдЯрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓реЗрди-рджреЗрди рдбрдВрдк рдХрд░реЗрдВ ред
рдЪрд▓рд┐рдП рдПрдХ рджреЛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрддреЗ рд╣реИрдВред рдЕрдм рд╣рдо рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рдЙрд╕рдХреЗ рдирд╛рдо рд╕реЗ рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВрдЧреЗред
curl -X GET -H "Accept: application/json; indent=4" \ "http://netbox.linkmeup.ru:45127/api/dcim/devices/?name=mlg-leaf-0"
рдпрд╣рд╛рдВ, рдпреВрдЖрд░рдЖрдИ рдореЗрдВ рдЦреЛрдЬ рдХреА рд╢рд░реНрддреЛрдВ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВрдиреЗ рдСрдмреНрдЬреЗрдХреНрдЯ рдХрд╛
рдирд╛рдо (рдЗрд╕рдХрд╛
рдирд╛рдо рдкреИрд░рд╛рдореАрдЯрд░ рдФрд░ рдЗрд╕рдХрд╛ рдорд╛рди
рдПрдордПрд▓рдЬреА-рд▓реАрдл -0 ) рднреА рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рд╣рд╛рд▓рдд рд╕реЗ рдкрд╣рд▓реЗ рдФрд░ рд╕реНрд▓реИрд╢ рдХреЗ рдмрд╛рдж
"?" , рдФрд░ рдирд╛рдо рдФрд░ рдорд╛рди рдХреЛ
"=" рдЪрд┐рд╣реНрди рджреНрд╡рд╛рд░рд╛ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрд╣ рдЕрдиреБрд░реЛрдз рдЬреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИред
GET /api/dcim/devices/?name=mlg-leaf-0 HTTP/1.1 Host: netbox.linkmeup.ru:45127 User-Agent: curl/7.54.0 Accept: application/json; indent=4
рд▓реЗрди-рджреЗрди рдбрдВрдк рдХрд░реЗрдВ ред
рдпрджрд┐ рдЖрдкрдХреЛ рдХреБрдЫ рд╢рд░реНрддреЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдХреНрд╡реЗрд░реА рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧреА:
curl -X GET -H "Accept: application/json; indent=4" \ "http://netbox.linkmeup.ru:45127/api/dcim/devices/?role=leaf&site=mlg"
рдпрд╣рд╛рдВ рд╣рдордиреЗ
mlg рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рд╕реНрдерд┐рдд рд╕рднреА
рд▓реАрдл рдбрд┐рд╡рд╛рдЗрд╕ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ рд╣реИред
рдпрд╣реА рд╣реИ, рджреЛ рд╢рд░реНрддреЛрдВ рдХреЛ
"рдФрд░" рд╕рдВрдХреЗрдд рджреНрд╡рд╛рд░рд╛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдЕрд▓рдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рд▓реЗрди-рджреЗрди рдбрдВрдк рдХрд░реЗрдВ ред
рдЬрд┐рдЬреНрдЮрд╛рд╕реБ рдФрд░ рд╕реБрдЦрдж рд╕реЗ - рдЕрдЧрд░ "рдФрд░" рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЖрдк рдПрдХ рд╣реА рдирд╛рдо рдХреЗ рд╕рд╛рде рджреЛ рд╕реНрдерд┐рддрд┐рдпрд╛рдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рдмреАрдЪ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдХ рддрд╛рд░реНрдХрд┐рдХ "AND" рдирд╣реАрдВ рд╣реЛрдЧрд╛, рд▓реЗрдХрд┐рди рдПрдХ рддрд╛рд░реНрдХрд┐рдХ "OR" рд╣реЛрдЧрд╛ред
рдпрд╣реА рд╣реИ, рдРрд╕реА рдХреНрд╡реЗрд░реА рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рджреЛ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рд▓реМрдЯрд╛рдПрдЧреА: рдПрдордПрд▓рдЬреА-рд▓реАрдл -0 рдФрд░ рдПрдордПрд▓рдЬреА-рд╕реНрдкрд╛рдЗрди -0
curl -X GET -H "Accept: application/json; indent=4" \ "http://netbox.linkmeup.ru:45127/api/dcim/devices/?name=mlg-leaf-0&name=mlg-spine-0"
рд▓реЗрди-рджреЗрди рдбрдВрдк рдХрд░реЗрдВ ред
рдЖрдЗрдП рдПрдХ рдиреЙрди-URL URL рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВред
curl -X GET -H "Accept: application/json; indent=4" \ "http://netbox.linkmeup.ru:45127/api/dcim/IDGAF/"
рд▓реЗрди-рджреЗрди рдбрдВрдк рдХрд░реЗрдВ ред
HTTP POST
POST рдХрд╛ рдЙрдкрдпреЛрдЧ рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдПрдХ рдирдИ рд╡рд╕реНрддреБ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рднрд╛рд╖рд╛ рдореЗрдВ: рдПрдХ рдирдпрд╛ рдЕрдзреАрдирд╕реНрде рд╕рдВрд╕рд╛рдзрди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред
рдЖрд░реНрдерд░рд┐рдПрдВрдЯреЗрдХ рд╕реЗ рд╕реНрдкрд╖реНрдЯреАрдХрд░рдг:
рд╕рд╣рд┐рдд, рд▓реЗрдХрд┐рди рддрдХ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред POST рд╡рд┐рдзрд┐ рдХреЛ рдЖрдЧреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдкрд░ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ - рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ HTTP рдХреЗ рднреАрддрд░ рдорд╛рдирдХреАрдХреГрдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред RFC 5789 рд╕реЗ рдкрд╣рд▓реЗ , рдпрд╣ рдЖрдВрд╢рд┐рдХ рдкрд░рд┐рд╡рд░реНрддрди рдХрд░рдиреЗ рдХрд╛ рдПрдХрдорд╛рддреНрд░ рдХрд╛рдиреВрдиреА рддрд░реАрдХрд╛ рдерд╛ред
roy.gbiv.com/untangled/2009/it-is-okay-to-use-post
tools.ietf.org/html/rfc7231#section-4.3.3
рдпрд╣реА рд╣реИ, рдЕрдЧрд░ рдЙрдкрдХрд░рдгреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ, рддреЛ POST рдЖрдкрдХреЛ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рдЕрдВрджрд░ рдПрдХ рдирдИ рдбрд┐рд╡рд╛рдЗрд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
рдПрдХ рд╣реА рдПрдВрдбрдкреЙрдЗрдВрдЯ рдЪреБрдиреЗрдВ рдФрд░ рдПрдХ рдирдпрд╛ рдбрд┐рд╡рд╛рдЗрд╕ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП POST рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
curl -X POST "http://netbox.linkmeup.ru:45127/api/dcim/devices/" \ -H "accept: application/json"\ -H "Content-Type: application/json" \ -H "Authorization: TOKEN a9aae70d65c928a554f9a038b9d4703a1583594f" \ -d "{ \"name\": \"just a simple russian girl\", \"device_type\": 1, \"device_role\": 1, \"site\": 3, \"rack\": 3, \"position\": 5, \"face\": \"front\"}"
рдПрдХ
рдкреНрд░рд╛рдзрд┐рдХрд░рдг рд╣реЗрдбрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдпрд╣рд╛рдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЯреЛрдХрди рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рд▓рд┐рдЦрдиреЗ рдХреЗ рдЕрдиреБрд░реЛрдз рдХреЛ рдЕрдзрд┐рдХреГрдд рдХрд░рддрд╛ рд╣реИ, рдФрд░
-d рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдмрд╛рдж JSON рдирд┐рд░реНрдорд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╣реЛрддрд╛ рд╣реИ:
{ "name": "just a simple russian girl", "device_type": 1, "device_role": 1, "site": 3, "rack": 3, "position": 5, "face": "front"}
рдЖрдкрдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рдЯреЛрдХрди рдЕрдм рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИ - рдиреЗрдЯрдмреЙрдХреНрд╕ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рди рдХрд░реЗрдВред
рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рд╕рдВрджреЗрд╢ рдХреЗ рд╢рд░реАрд░ рдореЗрдВ рдХреЛрдб 201 (рдирд┐рд░реНрдорд┐рдд) рдФрд░ JSON рдХреЗ рд╕рд╛рде HTTP рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде рдЖрддреА рд╣реИ, рдЬрд╣рд╛рдВ рд╕рд░реНрд╡рд░ рдирд┐рд░реНрдорд┐рдд рдбрд┐рд╡рд╛рдЗрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рддрд╛ рд╣реИред
HTTP/1.1 201 Created Server: nginx/1.14.0 (Ubuntu) Date: Sat, 18 Jan 2020 11:00:22 GMT Content-Type: application/json Content-Length: 1123 Connection: keep-alive JSON
рд▓реЗрди-рджреЗрди рдбрдВрдк рдХрд░реЗрдВ ред
рдЕрдм, GET рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдирдП рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде, рдЖрдк рдЗрд╕реЗ рдЖрдЙрдЯрдкреБрдЯ рдореЗрдВ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:
curl -X GET -H "Accept: application/json; indent=4" \ "http://netbox.linkmeup.ru:45127/api/dcim/devices/?q=russian"
рдиреЗрдЯрдмреЙрдХреНрд╕ рдореЗрдВ "рдХреНрдпреВ" рдЖрдкрдХреЛ рдЙрди рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рдЙрдирдХреЗ рдирд╛рдо рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛ рдЖрдЧреЗ рдЬрд╛рддреА рд╣реИред
POST, рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ,
рди рддреЛ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИ рдФрд░ рди рд╣реА рдмреЗрдХрд╛рд░ - рдпрд╣ рд╕рдВрднрд╡рддрдГ рдбреЗрдЯрд╛ рдХреЛ рдмрджрд▓рддрд╛ рд╣реИ, рдФрд░ рдПрдХ рдбрдмрд▓-рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдЕрдиреБрд░реЛрдз рдпрд╛ рддреЛ рджреВрд╕рд░реА рд╕рдорд╛рди рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдпрд╛ рддреНрд░реБрдЯрд┐ рдХреЗ рд▓рд┐рдП рд▓реЗ рдЬрд╛рдПрдЧрд╛ред
HTTP PUT
рдпрд╣ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рд╡рд╕реНрддреБ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреА рдПрдХ рд╡рд┐рдзрд┐ рд╣реИред PUT рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ POST рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рднрд┐рдиреНрди рджрд┐рдЦрддрд╛ рд╣реИ - рдЗрд╕рдореЗрдВ рдЕрдм рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред
PUT рдХреЛрдб 201 рдпрд╛ 200 рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред
рдЗрд╕ рд╡рд┐рдзрд┐ рдХреЗ рд╕рд╛рде рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдмрд┐рдВрджреБ: рдЖрдкрдХреЛ рд╕рднреА рдЖрд╡рд╢реНрдпрдХ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ PUT рдкреБрд░рд╛рдиреА рд╡рд╕реНрддреБ рдХреЛ рдмрджрд▓ рджреЗрддрд╛ рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╕ рд╣рдорд╛рд░реЗ рдирдП рдбрд┐рд╡рд╛рдЗрд╕ рдореЗрдВ рд╕рдВрдкрддреНрддрд┐_рдЯреИрдЧ рд╡рд┐рд╢реЗрд╖рддрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рдПрдХ рддреНрд░реБрдЯрд┐ рдорд┐рд▓рддреА рд╣реИ:
curl -X PUT "http://netbox.linkmeup.ru:45127/api/dcim/devices/18/" \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: TOKEN a9aae70d65c928a554f9a038b9d4703a1583594f" \ -d "{ \"asset_tag\": \"12345678\"}"
{"device_type":["This field is required."],"device_role":["This field is required."],"site":["This field is required."]}
рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рд▓рд╛рдкрддрд╛ рдлрд╝реАрд▓реНрдб рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд░реЗрдЧрд╛:
curl -X PUT "http://netbox.linkmeup.ru:45127/api/dcim/devices/18/" \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: TOKEN a9aae70d65c928a554f9a038b9d4703a1583594f" \ -d "{ \"name\": \"just a simple russian girl\", \"device_type\": 1, \"device_role\": 1, \"site\": 3, \"rack\": 3, \"position\": 5, \"face\": \"front\", \"asset_tag\": \"12345678\"}"
рд▓реЗрди-рджреЗрди рдбрдВрдк рдХрд░реЗрдВ ред
рдпрд╣рд╛рдВ URL рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рдЕрдм рдЗрд╕рдореЗрдВ рдЙрд╕ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдЖрдИрдбреА рд╢рд╛рдорд┐рд▓ рд╣реИ рдЬрд┐рд╕реЗ рд╣рдо рдмрджрд▓рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ ( 18 )ред
HTTP PATCH
рдЗрд╕ рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рдВрд╕рд╛рдзрди рдХреЛ рдЖрдВрд╢рд┐рдХ рд░реВрдк рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
WAT? рдЖрдк рдкреВрдЫрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди PUT рдХрд╛ рдХреНрдпрд╛?
PUT рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдорд╛рдирдХ рдореЗрдВ рдореМрдЬреВрдж рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдПрдХ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд╡рд╕реНрддреБ рдХрд╛ рдкреВрд░реНрдг рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд╢рд╛рдорд┐рд▓ рд╣реИред рддрджрдиреБрд╕рд╛рд░, рдкреАрдпреВрдЯреА рд╡рд┐рдзрд┐ рдореЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдКрдкрд░ рд▓рд┐рдЦрд╛ рдерд╛, рдЖрдкрдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдмрджрд▓рддреЗ рдирд╣реАрдВ рд╣реИрдВред
рдФрд░ PATCH рдХреЛ рдмрд╛рдж рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЖрдкрдХреЛ рдХреЗрд╡рд▓ рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
curl -X PATCH "http://netbox.linkmeup.ru:45127/api/dcim/devices/18/" \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: TOKEN a9aae70d65c928a554f9a038b9d4703a1583594f" \ -d "{ \"serial\": \"BREAKINGBAD\"}"
рдпрд╣рд╛рдВ, рдбрд┐рд╡рд╛рдЗрд╕ рдЖрдИрдбреА URL рдореЗрдВ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╣реИ, рд▓реЗрдХрд┐рди рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдХ
рд╕реАрд░рд┐рдпрд▓ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИред
рд▓реЗрди-рджреЗрди рдбрдВрдк рдХрд░реЗрдВ ред
HTTP DELETE
рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рд╡рд╕реНрддреБ рдХреЛ рд╣рдЯрд╛рддрд╛ рд╣реИред
рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред
curl -X DELETE "http://netbox.linkmeup.ru:45127/api/dcim/devices/21/" \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: TOKEN a9aae70d65c928a554f9a038b9d4703a1583594f"
DELETE рдкрджреНрдзрддрд┐ рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рдЙрджрд╛рд╕реАрди рд╣реИ рдХрд┐ рдПрдХ рджреЛрд╣рд░рд╛рдпрд╛ рдЧрдпрд╛ рдХреНрд╡реЗрд░реА рдЕрдм рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рдХреБрдЫ рднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИ (рд▓реЗрдХрд┐рди рдХреЛрдб 404 (NOT FOUND) рдХреЛ рд╡рд╛рдкрд╕ рдХрд░ рджреЗрдЧрд╛)ред
curl -X DELETE "http://netbox.linkmeup.ru:45127/api/dcim/devices/21/" \ -H "accept: application/json" \ -H "Content-Type: application/json" \ -H "Authorization: TOKEN a9aae70d65c928a554f9a038b9d4703a1583594f"
{"detail":"Not found."}
рд░реЗрд╕реНрдЯрдлреБрд▓ рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ
рдмреЗрд╢рдХ, рдмрд╣рд╛рджреБрд░ рд╕реАрдПрд▓рдЖрдИ рдпреЛрджреНрдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдмреЗрд╣рддрд░ рдЙрдкрдХрд░рдг рд╣реИрдВред
рдкрддреНрд░рд╡рд╛рд╣рдХ
рдкреЛрд╕реНрдЯрдореИрди рдЖрдкрдХреЛ рддрд░реАрдХреЛрдВ, рд╣реЗрдбрд░, рдмреЙрдбреА рдХрд╛ рдЪрдпрди рдХрд░рдХреЗ рдЧреНрд░рд╛рдлрд┐рдХрд▓ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдореЗрдВ рдкреНрд░рд╢реНрди рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдФрд░ рдкрд░рд┐рдгрд╛рдо рдХреЛ рдорд╛рдирд╡-рдкрдардиреАрдп рд░реВрдк рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрд╕рдХреЗ рдЕрддрд┐рд░рд┐рдХреНрдд, рдХреНрд╡реЗрд░реА рдФрд░ рдпреВрдЖрд░рдЖрдИ рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрд╛рдж рдореЗрдВ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рдкрд╕ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рдкреЛрд╕реНрдЯрдореИрди рдХреЛ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ ред
рддреЛ рд╣рдо рдПрдХ GET рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдпрд╣рд╛рдБ рдЯреЛрдХрди рдХреЛ рдХреЗрд╡рд▓ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ GET рдореЗрдВ рджрд░реНрд╢рд╛рдпрд╛ рдЧрдпрд╛ рд╣реИредрдФрд░ рдЗрд╕рд▓рд┐рдП рдкреЛрд╕реНрдЯ:

Postman рдХреЗрд╡рд▓ RESTful API рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, NETCONF XML рдХреЛ рдЗрд╕рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВ, рдЬреИрд╕рд╛ рдХрд┐ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рд╕реНрд╡рдЪрд╛рд▓рди рдХреИрд░рд┐рдпрд░ рдХреА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдХрд┐рдпрд╛ рдерд╛ред
рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдкреАрдЖрдИ рдХреЗ рдЕрдЪреНрдЫреЗ рдмреЛрдирд╕ рдореЗрдВ рд╕реЗ рдПрдХ рдпрд╣ рд╣реИ рдХрд┐ рдЖрдк рдПрдХ рд╕рдВрдЧреНрд░рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдкреЛрд╕реНрдЯрдореИрди рдореЗрдВ рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдФрд░ рдЙрдирдХреЗ рддрд░реАрдХреЛрдВ рдХреЛ рдЖрдпрд╛рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП,
рдЖрдпрд╛рдд рд╡рд┐рдВрдбреЛ (рдлрд╝рд╛рдЗрд▓-> рдЖрдпрд╛рдд) рдореЗрдВ,
рд▓рд┐рдВрдХ рд╕реЗ рдЖрдпрд╛рдд рдХрд░реЗрдВ рдЪреБрдиреЗрдВ рдФрд░ рд╡рд┐рдВрдбреЛ
netbox.linkmeup.ru URL рдореЗрдВ рдкреЗрд╕реНрдЯ рдХрд░реЗрдВ: 45127 / рдПрдкреАрдЖрдИ / рдбреЙрдХреНрд╕ /? рдкреНрд░рд╛рд░реВрдк = рдУрдкреЗрдирдкреАред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдм рдХреБрдЫ рдЖрдк рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдкрд╛рдпрдерди + рдЕрдиреБрд░реЛрдз
рд▓реЗрдХрд┐рди рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдкреЛрд╕реНрдЯрдореИрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдЖрдк рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рдЕрдкрдиреЗ рдЙрддреНрдкрд╛рджрди рдкреНрд░рдгрд╛рд▓рд┐рдпреЛрдВ рдХрд╛ рдкреНрд░рдмрдВрдзрди рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдЖрдкрдХреЗ рдкрд╛рд╕ рдмрд╛рд╣рд░реА рдЕрдиреБрдкреНрд░рдпреЛрдЧ рд╣реЛрдВрдЧреЗ рдЬреЛ рдЖрдкрдХреА рднрд╛рдЧреАрджрд╛рд░реА рдХреЗ рдмрд┐рдирд╛ рдЙрдирдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЬреЗрдирд░реЗрд╢рди рд╕рд┐рд╕реНрдЯрдо NetBox рд╕реЗ IP рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдПрдХ рд╕реВрдЪреА рдЪреБрдирдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред
рдкрд╛рдпрдерди рдореЗрдВ
рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдПрдХ рдЕрджреНрднреБрдд рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ HTTP рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг:
import requests HEADERS = {'Content-Type': 'application/json', 'Accept': 'application/json'} NB_URL = "http://netbox.linkmeup.ru:45127" request_url = f"{NB_URL}/api/dcim/devices/" devices = requests.get(request_url, headers = HEADERS) print(devices.json())
рдлрд┐рд░ рд╕реЗ рдПрдХ рдирдпрд╛ рдЙрдкрдХрд░рдг рдЬреЛрдбрд╝реЗрдВ:
import requests API_TOKEN = "a9aae70d65c928a554f9a038b9d4703a1583594f" HEADERS = {'Authorization': f'Token {API_TOKEN}', 'Content-Type': 'application/json', 'Accept': 'application/json'} NB_URL = "http://netbox.linkmeup.ru:45127" request_url = f"{NB_URL}/api/dcim/devices/" device_parameters = { "name": "just a simple REQUESTS girl", "device_type": 1, "device_role": 1, "site": 3, } new_device = requests.post(request_url, headers = HEADERS, json=device_parameters) print(new_device.json())
рдкрд╛рдпрдерди + рдиреЗрдЯрдмреЙрдХреНрд╕ рдПрд╕рдбреАрдХреЗ
рдиреЗрдЯрдмреЙрдХреНрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХ рдкрд╛рдпрдерди SDK -
Pynetbox рднреА рд╣реИ , рдЬреЛ рдПрдХ рд╡рд╕реНрддреБ рдФрд░ рдЗрд╕рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд░реВрдк рдореЗрдВ рд╕рднреА NetBox рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдк URI рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдФрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА рдЧрдВрджреЗ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдмрд┐рд▓реНрдХреБрд▓ рдореБрдлреНрдд рдирд╣реАрдВред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд▓реЛ pynetbox рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдКрдкрд░ рдЬреИрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рд╡реИрд╕рд╛ рд╣реА рдХрд░реЗрдВред
рд╕рднреА рдЙрдкрдХрд░рдгреЛрдВ рдХреА рд╕реВрдЪреА:
import pynetbox NB_URL = "http://netbox.linkmeup.ru:45127" nb = pynetbox.api(NB_URL) devices = nb.dcim.devices.all() print(devices)
рдирдпрд╛ рдЙрдкрдХрд░рдг рдЬреЛрдбрд╝реЗрдВ:
import pynetbox API_TOKEN = "a9aae70d65c928a554f9a038b9d4703a1583594f" NB_URL = "http://netbox.linkmeup.ru:45127" nb = pynetbox.api(NB_URL, token = API_TOKEN) device_parameters = { "name": "just a simple PYNETBOX girl", "device_type": 1, "device_role": 1, "site": 3, } new_device = nb.dcim.devices.create(**device_parameters) print(new_device)
Pynetbox рдкреНрд░рд▓реЗрдЦрди
рдЕрдХрдбрд╝
рдкрд┐рдЫрд▓реЗ рдПрдХ рджрд╢рдХ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж рдХреЗ рд▓рд╛рдпрдХ рдФрд░ рдХреНрдпрд╛ рд╣реИ рдПрдкреАрдЖрдИ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ред рдпрджрд┐ рдЖрдк
рдЗрд╕ рдкрде рдХрд╛ рдЕрдиреБрд╕рд░рдг
рдХрд░рддреЗ рд╣реИрдВ , рддреЛ рдЖрдкрдХреЛ рд╕реНрд╡реИрдЧрд░ UI - рдиреЗрдЯрдмреЙрдХреНрд╕ рдПрдкреАрдЖрдИ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ рд▓реЗ рдЬрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ред

рдпрд╣ рдкреГрд╖реНрда рд╕рднреА рд╕рдорд╛рдкрди рдмрд┐рдВрджреБрдУрдВ, рдЙрдирдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЛрдВ, рд╕рдВрднрд╛рд╡рд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдФрд░ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЙрдирдореЗрдВ рд╕реЗ рдХреМрди рд╕реЗ рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрдкреЗрдХреНрд╖рд┐рдд рдЙрддреНрддрд░ рд╡рд░реНрдгрд┐рдд рд╣реИрдВред

рдЙрд╕реА рдкреГрд╖реНрда рдкрд░, рдЖрдк
рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рдкреНрд░рд╢реНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ, рд╕реНрд╡реИрдЧрд░ рдмреЗрд╕ URL рдХреЗ рд░реВрдк рдореЗрдВ рдкреЛрд░реНрдЯ рдХреЗ рдмрд┐рдирд╛ рд╕рд░реНрд╡рд░ рдХрд╛ рдирд╛рдо рд▓реЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдПрдВ рдлрд╝рдВрдХреНрд╢рди рдореЗрд░реЗ рд╕реНрд╡реИрдЧрд░ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рдЕрдкрдиреА рд╕реНрдерд╛рдкрдирд╛ рдкрд░ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВред
рдЬрдм рдЖрдк
Execute Swagger рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ UI рдПрдХ рдХрд░реНрд▓ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрдорд╛рдВрдб рд▓рд╛рдЗрди рд╕реЗ рд╕рдорд╛рди рдЕрдиреБрд░реЛрдз рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
рд╕реНрд╡реИрдЧрд░ UI рдореЗрдВ, рдЖрдк рдПрдХ рдСрдмреНрдЬреЗрдХреНрдЯ рднреА рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ:

рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрд╡рд╢реНрдпрдХ рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЕрдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реЛрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред
рд╣рдо рдЗрд╕ рдкреГрд╖реНрда рдкрд░ рдЬреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рд╡рд╣ Swagger UI рд╣реИ, рдЬреЛ API рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рд╣реИред
рдорд╛рдЗрдХреНрд░реЛрд╕реЙрд░реНрд╕реНрдХ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рд░реБрдЭрд╛рдиреЛрдВ рдХреЗ рд╕рд╛рде, рдШрдЯрдХреЛрдВ рдХреЗ рдмреАрдЪ рдмрд╛рддрдЪреАрдд рдХреЗ рд▓рд┐рдП рдПрдХ рдорд╛рдирдХреАрдХреГрдд рдПрдкреАрдЖрдИ рдХрд╛ рд╣реЛрдирд╛ рдмрд╣реБрдд рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬреЛ рдПрдВрдбрдкреЙрдЗрдВрдЯ рдФрд░ рддрд░реАрдХреЗ рджреЛрдиреЛрдВ рд╡реНрдпрдХреНрддрд┐ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реИ, рд╕реНрд░реЛрдд рдХреЛрдб рдпрд╛ рдкреАрдбреАрдПрдл рдкреНрд░рд▓реЗрдЦрди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЕрдлрд╡рд╛рд╣ рдХреЗ рдмрд┐рдирд╛ред
рдЗрд╕рд▓рд┐рдП, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЖрдЬ
рдПрдкреАрдЖрдИ рдлрд░реНрд╕реНрдЯ рдкреНрд░рддрд┐рдорд╛рди рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдЬрдм рд╡реЗ рдкрд╣рд▓реА рдмрд╛рд░ рдПрдкреАрдЖрдИ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВ, рдФрд░ рдЙрд╕рдХреЗ рдмрд╛рдж рд╣реА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрддреЗ рд╣реИрдВред
рдПрдкреАрдЖрдИ рдХреЛ рдкрд╣рд▓реЗ рдЗрд╕ рдбрд┐рдЬрд╛рдЗрди рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдФрд░ рдлрд┐рд░ рдкреНрд░рд▓реЗрдЦрди, рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреНрд▓рд┐рдХреЗрд╢рди, рд╕рд░реНрд╡рд░ рднрд╛рдЧ рдЗрд╕реЗ рд╕реЗ
рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдкрд░реАрдХреНрд╖рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред
рд╕реНрд╡реИрдЧрд░ рдПрдХ рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рднрд╛рд╖рд╛ рд╣реИ (рдЬрд┐рд╕реЗ рдЕрдм рдУрдкрдирдПрдкреАрдЖрдИ 2.0 рдирд╛рдо рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ), рдЬрд┐рд╕рд╕реЗ рдЖрдк рдЗрд╕ рдХрд╛рд░реНрдп рдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдореИрдВ рдЗрд╕рдореЗрдВ рдЧрд╣рд░рд╛рдИ рддрдХ рдирд╣реАрдВ рдЬрд╛рдКрдВрдЧрд╛ред
рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП рдпрд╣рд╛рдБ:
рдЖрд░рдИрдПрд╕рдЯреА рдФрд░ рд╡рд┐рдХрд▓реНрдк рдХреА рдЖрд▓реЛрдЪрдирд╛
рдПрдХ рд╣реИ, рд╣рд╛рдБред рд╡рд░реНрд╖ 2000 рдХреА рдЙрд╕ рджреБрдирд┐рдпрд╛ рдореЗрдВ рд╕рдм рдХреБрдЫ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрддрдирд╛ рд░рд╕рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред
рдПрдХ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рдирд╛рддреЗ, рдореИрдВ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рд▓рдЧрд╛рддрд╛рд░ рдЦреБрд▓рд╛рд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд╛рдирддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ
рд╣реИрдмрд░ рдкрд░ рдПрдХ рдирд┐рд░реНрд╡рд┐рд╡рд╛рдж
рд▓реЗрдЦ рдХрд╛ рд▓рд┐рдВрдХ
рджреВрдВрдЧрд╛ ред
рдЖрдЬ рд╕рд┐рд╕реНрдЯрдо рдШрдЯрдХреЛрдВ рдХреЗ рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рд╡реИрдХрд▓реНрдкрд┐рдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдЬреАрдЖрд░рдкреАрд╕реА рд╣реИред рдЙрдиреНрд╣реЛрдВрдиреЗ рдиреЗрдЯрд╡рд░реНрдХ рдЙрдкрдХрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирдП рджреГрд╖реНрдЯрд┐рдХреЛрдгреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдорд╣рд╛рди рднрд╡рд┐рд╖реНрдп рдХреА рднрд╡рд┐рд╖реНрдпрд╡рд╛рдгреА рдХреАред рд▓реЗрдХрд┐рди рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рдХрднреА рдЙрд╕рдХреА рдмрд╛рдд рдХрд░реЗрдВрдЧреЗ, рдЬрдм рдЙрд╕рдХреА рдмрд╛рд░реА рдЖрдПрдЧреАред
рдЖрдк рд╣реЛрдирд╣рд╛рд░
рдЧреНрд░рд╛рдлрд╝рдХреЙрдХ рдкрд░ рднреА рдирдЬрд╝рд░
рдбрд╛рд▓ рд╕рдХрддреЗ рд╣реИрдВ , рд▓реЗрдХрд┐рди рдлрд┐рд░ рднреА рд╣рдореЗрдВ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЬрд╝рд░реВрд░рдд рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЕрдзреНрдпрдпрди рдХрд░рдирд╛ рдмрд╛рдХреА рд╣реИред
рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ
рдЯреЛрдХрди a9aae70d65c928a554f9a038b9d4703a1583594f рдХреЗрд╡рд▓ рдкреНрд░рджрд░реНрд╢рди рдЙрджреНрджреЗрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдЕрдм рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред
рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛрдб рдореЗрдВ рдЯреЛрдХрди рдХрд╛ рдкреНрд░рддреНрдпрдХреНрд╖ рд╕рдВрдХреЗрдд рдЕрд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ рдФрд░ рдореИрдВрдиреЗ рдпрд╣рд╛рдВ рдХреЗрд╡рд▓ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЛ рд╕рд░рд▓ рдмрдирд╛рдиреЗ рдХреЗ рд╣рд┐рддреЛрдВ рдореЗрдВ рдмрдирд╛рдпрд╛ рд╣реИред
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ
рдзрдиреНрдпрд╡рд╛рдж
- рдкреНрд░реВрдлрд░реАрдбрд┐рдВрдЧ рдФрд░ рдПрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЖрдВрджреНрд░реЗрдИ рдкреИрдирдлрд┐рд▓реЛрд╡
- рдЕрд▓реЗрдХреНрдЬреЗрдВрдбрд░ рдлрддрд┐рди рдкреНрд░реВрдлрд░реАрдбрд┐рдВрдЧ рдФрд░ рдПрдбрд┐рдЯрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП