"рдФрд░ рдЖрдк рдЙрд╕ рдкрд░ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рддреЗ рдереЗ?" рдЦреБрд░ рд▓реЛрдХрдкрд╛рд▓ рдиреЗ рдлрдЯрдХрд╛рд░рддреЗ рд╣реБрдП рдХрд╣рд╛ред "рдЕрдЪреНрдЫрд╛, рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ, рдХреНрдпрд╛ рдореИрдВ рдЖрдкрдХреА рдЕрдиреБрдорддрд┐ рдХреЗ рдмрд┐рдирд╛ рдЗрди рд╡рдЬрд╝рди рдХреЛ рд▓реЗ рдЪреБрдХрд╛ рд╣реЛрддрд╛?"
"рддреЛ рдЖрдк рд╡рдЬрди рд▓рд┐рдпрд╛?" рд░реЛрдпрд╛ рдУрд╕реНрддрд╛рдкред - рдХреНрдпреЛрдВ?
- рдкреИрдирд┐рдХреЛрд╡реНрд╕реНрдХреА рдиреЗ рдХрд╣рд╛ рдХрд┐ рд╡реЗ рд╕реЛрдиреЗ рдХреЗ рд╣реИрдВред
рдУрд╕реНрддрд╛рдк рдиреЗ рдкреИрдирд┐рдХреЛрд╡рд╕реНрдХреА рдХреЛ рджреЗрдЦрд╛ред рдХреЗрд╡рд▓ рдЕрдм рдЙрдиреНрд╣реЛрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдЙрдирдХреА рдЬреИрдХреЗрдЯ рдХреЗ рдиреАрдЪреЗ рдкрдЪрд╛рд╕ рдбреЙрд▓рд░ рдХреА рд╢рд░реНрдЯ-рдлреНрд░рдВрдЯ рд╕реЗ рдЬреНрдпрд╛рджрд╛ рдХреБрдЫ рдирд╣реАрдВ рдерд╛ рдФрд░ рд╡рд╣рд╛рдВ рд╕реЗ рднрдЧрд╡рд╛рди рдХреА рдирдЧреНрди рдЯрдХрдЯрдХреА рджрд┐рди рдХреЗ рдкреНрд░рдХрд╛рд╢ рдореЗрдВ рджрд┐рдЦрддреА рдереАред рдПрдХ рд╢рдмреНрдж рдХреЗ рдмрд┐рдирд╛, рдорд╣рд╛рди рдХреЙрдореНрдмрд┐рдиреЗрдЯрд░ рдПрдХ рдХреБрд░реНрд╕реА рдкрд░ рдЧрд┐рд░ рдЧрдпрд╛ред рд╡рд╣ рд╣рд┐рд▓ рдЧрдпрд╛, рдЙрд╕рдХреЗ рд╣рд╛рде рд╣рд╡рд╛ рдореЗрдВ рдкрдХрдбрд╝ рд▓рд┐рдПред рдлрд┐рд░ рдЙрд╕рдХреЗ рдЧрд▓реЗ рд╕реЗ рдЬреНрд╡рд╛рд▓рд╛рдореБрдЦреА рдХреА рдЧрдбрд╝рдЧрдбрд╝рд╛рд╣рдЯ рд╕реБрдирд╛рдИ рджреА, рдЙрд╕рдХреА рдЖрдБрдЦреЛрдВ рд╕реЗ рдЖрдБрд╕реВ рджреМрдбрд╝ рдкрдбрд╝реЗ рдФрд░ рд╣рдБрд╕реА, рдЬрд┐рд╕рд╕реЗ рд░рд╛рдд рдХреА рдердХрд╛рди, рдХреЛрд░реЗрдХреЛ рдХреЗ рдЦрд┐рд▓рд╛рдл рд▓рдбрд╝рд╛рдИ рдореЗрдВ рд╕рд╛рд░реА рдирд┐рд░рд╛рд╢рд╛ рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реБрдИ, рдЗрд╕рд▓рд┐рдП рдЙрд╕рдХреЗ рджреВрдз рднрд╛рдЗрдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рджреЗрд╢рднрдХреНрддрд┐рдкреВрд░реНрд╡рдХ рдкреИрд░реЛрдбреА рдХреА рдЧрдИред
рдХреНрд▓рд╛рд╕рд┐рдХреНрд╕ рдХреЗ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд╕рд╛рде, рдореИрдВ рд░реЙрдп рдЯреАред рдлреАрд▓реНрдбрд┐рдВрдЧ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ REST API рдХреЗ рдЕрдиреБрд╡рд╛рдж рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛ рджреЗрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ рдЬреЛ рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ-рдЪрд╛рд▓рд┐рдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕рд╛рдордЧреНрд░реА рдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд▓рд┐рдП
habr.com/users/arthuriantech рдХрд╛ рд╡рд┐рд╢реЗрд╖ рдзрдиреНрдпрд╡рд╛рджред
рд╣реИрдмреЗ рдкрд░ рдЗрд╕ рд╕рдкреНрддрд╛рд╣ рдХреЛ рдЖрд░рдИрдПрд╕рдЯреА (рдкреВрд░реНрдг) рдПрдкреАрдЖрдИ рдХреЗ рд╕рдкреНрддрд╛рд╣ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЗрд╕ рдЕрд░реНрде рдореЗрдВ, рдореИрдВ рд╣рдореЗрд╢рд╛ рдЗрд╕ рд╢рдмреНрдж рдореЗрдВ REST рдЙрдкрд╕рд░реНрдЧ рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рд╕реЗ рднреНрд░рдорд┐рдд рдерд╛ред рдФрд░, рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣ рдирд┐рдХрд▓рд╛, рд╕рд┐рд░реНрдл рдореИрдВ рд╣реА рдирд╣реАрдВред рдЖрдЬ рдореИрдВ рдЦреБрдж рдЗрд╕реЗ рдкрдврд╝реВрдВрдЧрд╛ рдФрд░ рд╕рднреА рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдордВрддреНрд░рд┐рдд рдХрд░реВрдВрдЧрд╛ рдХрд┐ рд░реЙрдп рдЯреАред рдлреАрд▓реНрдбрд┐рдВрдЧ рдиреЗ 2008 рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛ рд╕реЛрдЪрд╛ рдерд╛ред рдмреЗрд╢рдХ, рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдПрдХ рд╕реНрдЯреВрд▓ рдкрд░ рдШрдмрд░рд╛рддрд╛ рд╣реИ рдФрд░ рдХрд╣рддрд╛ рд╣реИ: рд░реЙрдп рдХреЛ рдмрддрд╛рдПрдВ, рдмреЗрдиреНрдпрд╛ рд░реЗрд╕реНрдЯ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдЬрд╛рдирддрд╛ рд╣реИред рдлрд┐рд░ рднреА, рд╣рдо рд╢реБрд░реВ рдХрд░реЗрдВрдЧреЗред
рдореИрдВ рдпрд╣ рд╕реЛрдЪрдХрд░ рдирд┐рд░рд╛рд╢ рд╣реВрдВ рдХрд┐ рдХрд┐рддрдиреЗ рд▓реЛрдЧ HTTP рдкреНрд░реЛрдЯреЛрдХреЙрд▓ REST API рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдХрд┐рд╕реА рднреА рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЛ рдХреЙрд▓ рдХрд░рддреЗ рд╣реИрдВред рдЖрдЬ рдХрд╛ рдЙрджрд╛рд╣рд░рдг REST рд╕реЛрд╢рд▓рд╕рд╛рдЗрдЯ рдПрдкреАрдЖрдИ рд╣реИред рдпрд╣ рдПрдХ RPC рд╣реИред рдпрд╣ рдПрдХ рд╕реНрдкрд╖реНрдЯ RPC рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рдХрдард┐рди рд▓рд┐рдВрдХ рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдХрдард┐рди рдкреЛрд░реНрди рдХреА рд╢реНрд░реЗрдгреА рдХреЛ рд╕реМрдВрдкрдиреЗ рдХрд╛ рд╕рдордп рд╣реИред
рдХреНрдпрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рд╕рдордЭреЗрдВ рдХрд┐ рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рдЖрд░рдИрдПрд╕рдЯреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рдПрдХ рдЖрд╡рд╢реНрдпрдХ рддрддреНрд╡ рд╣реИ? рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрджрд┐ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреЗрдЯ рдореИрдХреЗрдирд┐рдЬреНрдо (рдФрд░ рдЗрд╕рд▓рд┐рдП рдПрдкреАрдЖрдИ) рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рдЖрдзрд╛рд░рд┐рдд рдирд╣реАрдВ рд╣реИ, рддреЛ рдпрд╣ Restful рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ REST API рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдмрд┐рдВрджреБред рдЗрд╕реЗ рд╕реНрдкрд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЭреЗ рдХрд┐рд╕ рдкреБрд╕реНрддрдХ рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП?
API рдбреЗрд╡рд▓рдкрд░, рдЕрдкрдиреЗ REST API рдХреГрддрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдирд┐рдпрдореЛрдВ рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ:
REST API рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрд╕ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреА рд╕рдлрд▓ рдореИрдкрд┐рдВрдЧ рдореЗрдЯрд╛рдбреЗрдЯрд╛ рдХреА рдЙрдкрд▓рдмреНрдзрддрд╛, рд╡рд┐рдзрд┐рдпреЛрдВ рдХреА рдкрд╕рдВрдж рдЖрджрд┐ рдкрд░ рдирд┐рд░реНрднрд░ рд╣реЛ рд╕рдХрддреА рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, URI рд╕реНрдХреАрдо рдореЗрдВ рдХреЛрдИ рднреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдкрд╣рдЪрд╛рди рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рднреА URI рд╕реНрдХреАрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред [рдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рдпрд╣ рд╣реИ рдХрд┐ рдкрд╣рдЪрд╛рди рдмрд╛рддрдЪреАрдд рд╕реЗ рдЕрд▓рдЧ рдирд╣реАрдВ рд╣реИред]
REST API рдореЗрдВ рдорд╛рдирдХ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдмрд┐рдЯреНрд╕, рдЬреИрд╕реЗ HTTP PATCH рд╡рд┐рдзрд┐ рдпрд╛ рд▓рд┐рдВрдХ рд╣реЗрдбрд░ рдлрд╝реАрд▓реНрдб рдХреЗ рд╡рд┐рд╡рд░рдг рдХреЛ рднрд░рдиреЗ рдпрд╛ рд╕реБрдзрд╛рд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рдВрдЪрд╛рд░ рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдореЗрдВ рдХреЛрдИ рдкрд░рд┐рд╡рд░реНрддрди рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЧреИрд░-рдХрд╛рд░реНрдпрд╢реАрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рд▓рд┐рдП рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб (рдЬреИрд╕реЗ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬреЛ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИрдВ рдХрд┐ рдПрдЪрдЯреАрдПрдордПрд▓ HTTP рддрд░реАрдХреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ) рдХреЛ рдЕрд▓рдЧ рд╕реЗ рдпрд╛ рдХрдо рд╕реЗ рдХрдо рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдореЗрдВ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдЗрд╕ рдЙрдореНрдореАрдж рдХреЗ рд╕рд╛рде рдХрд┐ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдЕрдВрддрддрдГ рдЕрдкреНрд░рдЪрд▓рд┐рдд рд╣реЛ рдЬрд╛рдПрдЧрд╛ред [рдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рдЗрдВрдЯрд░рдлреЗрд╕ рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╣реИрдВ рдФрд░ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдирд╣реАрдВ рд╣реИрдВред]
REST API рдХреЛ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдореАрдбрд┐рдпрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реНрдерд┐рддрд┐ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдореМрдЬреВрджрд╛ рдорд╛рдирдХ рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдирд╛рдо рдФрд░ рдорд╛рд░реНрдХрдЕрдк рдирд╛рдореЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдкрд░ рдЕрдкрдиреЗ рд╡рд░реНрдгрдирд╛рддреНрдордХ рдкреНрд░рдпрд╛рд╕реЛрдВ рдХреЗ рд▓рдЧрднрдЧ рд╕рднреА рдЦрд░реНрдЪ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреЛрдИ рднреА рдкреНрд░рдпрд╛рд╕ рдЬреЛ рдпрд╣ рдмрддрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЦрд░реНрдЪ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рди рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдпреВрдЖрд░рдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ (рдФрд░, рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдореМрдЬреВрджрд╛ рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рджреНрд╡рд╛рд░рд╛ рдкрд░рд┐рднрд╛рд╖рд┐рдд) рдХреЗ рд▓рд┐рдП рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рдирд┐рдпрдореЛрдВ рдХреЗ рд╣рд┐рд╕реНрд╕реЗ рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред [рдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рдЬрд╛рдирдХрд╛рд░реА рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдмрдЬрд╛рдп рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИред]
REST API рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд╕рдВрд╕рд╛рдзрди рдирд╛рдо рдпрд╛ рдирд╛рдорд╕реНрдерд╛рди (рддрдВрдЧ рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдХрдиреЗрдХреНрдЯрд┐рд╡рд┐рдЯреА) рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдиреМрдХрд░реЛрдВ рдХреЛ рдЕрдкрдиреЗ рдирд╛рдорд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдкреНрд░рдмрдВрдзрд┐рдд рдХрд░рдиреЗ рдХреА рд╕реНрд╡рддрдВрддреНрд░рддрд╛ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╕рд░реНрд╡рд░реЛрдВ рдХреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рдирд┐рд░реНрджреЗрд╢ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдЙрдкрдпреБрдХреНрдд URI рдХреИрд╕реЗ рдмрдирд╛рдПрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, HTML рд░реВрдкреЛрдВ рдФрд░ URI рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдореЗрдВ, рдЗрди рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдФрд░ рд╕рдВрджрд░реНрдн рд╕рдВрдмрдВрдзреЛрдВ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реБрдПред [рдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рдХреА рд╕рдВрд░рдЪрдирд╛ рдЗрд╕ рд╕рдВрд╕рд╛рдзрди рдХреЗ рдмрд╛рд╣рд░ рд╕реЗрдЯ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдбреЛрдореЗрди-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдорд╛рдирдХ рдореЗрдВ, рдЬреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ RPC рдХреЗ рдХрд╛рд░реНрдпрд╛рддреНрдордХ рд╕рдВрдмрдВрдз рдХрд╛ рдПрдХ рдПрдирд╛рд▓реЙрдЧ рд╣реИ]ред
REST API рдореЗрдВ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг "рдЯрд╛рдЗрдк" рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд▓реЗрдЦрдХ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдкреАрдЫреЗ рд╕рд░реНрд╡рд░ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпреЗ рдкреНрд░рдХрд╛рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдЕрдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдФрд░ рдЕрджреГрд╢реНрдп рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдПрдХрдорд╛рддреНрд░ рдкреНрд░рдХрд╛рд░ рд╡рд░реНрддрдорд╛рди рджреГрд╢реНрдп рдФрд░ рдорд╛рдирдХреАрдХреГрдд рд╕рдВрдмрдВрдз рдирд╛рдореЛрдВ рдХреЗ рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ рд╣реИрдВред [рд╡реА рдЗрд╕рдХреЗ рдмрд╛рдж рдХреЗ рд╕рдВрд╕реНрдХрд░рдг]
REST API рдХреЛ рдкреНрд░рд╛рд░рдВрднрд┐рдХ URI рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд┐рд╕реА рднреА рдкреВрд░реНрд╡ рдЬреНрдЮрд╛рди рдХреЗ рдмрд┐рдирд╛ рджрд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд▓рдХреНрд╖рд┐рдд рджрд░реНрд╢рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдорд╛рдирдХреАрдХреГрдд рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ (рдЕрд░реНрдерд╛рдд рдХреНрд▓рд╛рдЗрдВрдЯ рдкрдХреНрд╖ рдкрд░ рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИ, рдЬреЛ API рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддрд╛ рд╣реИ)ред рдЗрд╕ рдХреНрд╖рдг рд╕реЗ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕реНрдЯреЗрдЯреНрд╕ рдХреЗ рд╕рднреА рд╕рдВрдХреНрд░рдордгреЛрдВ рдХреЛ рд╕рд░реНрд╡рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рджрд╛рди рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╡рд┐рдХрд▓реНрдк рджреНрд╡рд╛рд░рд╛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдкреНрд░рд╛рдкреНрдд рд╡рд┐рдЪрд╛рд░реЛрдВ рдореЗрдВ рдореМрдЬреВрдж рд╣реИрдВ, рдпрд╛ рдЗрди рд╡рд┐рдЪрд╛рд░реЛрдВ рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рдЬреЛрдбрд╝-рддреЛрдбрд╝ рджреНрд╡рд╛рд░рд╛ред рдореАрдбрд┐рдпрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕рдВрд╕рд╛рдзрди рд╕рдВрдЪрд╛рд░ рддрдВрддреНрд░ рдХреЗ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рдЬреНрдЮрд╛рди рд╕реЗ рд╕рдВрдХреНрд░рдордг рдХрд╛ рдирд┐рд░реНрдзрд╛рд░рдг (рдпрд╛ рд╕реАрдорд┐рдд) рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдордХреНрдЦреА (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдиреБрд░реЛрдз рдкрд░ рдХреЛрдб) рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред [рдпрд╣рд╛рдБ рддреНрд░реБрдЯрд┐ рдпрд╣ рд╣реИ рдХрд┐ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рдмрд╛рд╣рд░реА рдЬрд╛рдирдХрд╛рд░реА рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рдмрдЬрд╛рдп рдЗрдВрдЯрд░реИрдХреНрд╢рди рдХреЛ рдирд┐рдпрдВрддреНрд░рд┐рдд рдХрд░рддреА рд╣реИред]
рд╢рд╛рдпрдж рдореИрдВ рдХреБрдЫ рдпрд╛рдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдКрдкрд░ рджрд┐рдП рдЧрдП рдирд┐рдпрдо рд╣реИрдВ рдЬреЛ рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рдЬреЛ рддрдерд╛рдХрдерд┐рдд рдЯреЗрд╕реНрдЯ рдПрдкреАрдЖрдИ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рдмрд╛рд░ рдЙрд▓реНрд▓рдВрдШрди рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдХреГрдкрдпрд╛ рдЙрдирдХреЗ рд╕рд╛рде рд░рд╣рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ рдпрд╛ рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдПрдХ рдФрд░ рдЪрд░реНрдЪрд╛ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
рд░реЙрдп рдЯреАред рдлреАрд▓реНрдбрд┐рдВрдЧ рдХреЗ рдЗрд╕ рдкреЛрд╕реНрдЯ рдиреЗ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рдЪрд░реНрдЪрд╛ рдЫреЗрдбрд╝ рджреАред рдореИрдВ рдЪрд░реНрдЪрд╛ рдХреЗ рднрд╛рдЧ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд рд╣реЛрдиреЗ рдХрд╛ рдкреНрд░рд╕реНрддрд╛рд╡ рдХрд░рддрд╛ рд╣реВрдВ, рдЬреЛ рд▓реЗрдЦрдХ рдХреЗ рдЙрддреНрддрд░реЛрдВ рдХреЗ рд╕рд╛рде рдерд╛ред
рдкреНрд░рд╢реНрди:
рдХрд┐рд╕ рдЕрд░реНрде рдореЗрдВ рдЖрдк рдпрд╣рд╛рдБ "рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ" рд╢рдмреНрдж рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдореБрдЭреЗ рдпрд╣ рд╕рдордЭрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдХрд╛рдо рдХреЛ рдкрдврд╝рдирд╛ рд╣реЛрдЧрд╛ рдпрд╛ рдХреНрдпрд╛ рдСрдирд▓рд╛рдЗрди рдХреБрдЫ рдРрд╕рд╛ рд╣реИ рдЬреЛ рдЗрд╕ рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЕрд░реНрде рдмрддрд╛рддрд╛ рд╣реИ?
рдЙрддреНрддрд░ рд╣реИ:
рдореЗрд░реА REST рдмрд╛рдд рдореЗрдВ рдПрдХ рд╕реНрд▓рд╛рдЗрдб рд╣реИ рдЬреЛ рдмрддрд╛рддреА рд╣реИ рдХрд┐ рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ (рдФрд░ рд╣рд╛рдЗрдкрд░рдореАрдбрд┐рдпрд╛) рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИред
рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рдХреА рдХрдИ рдкрд░рд┐рднрд╛рд╖рд╛рдПрдБ рд╣реИрдВ:
рдЯреЗрдб рдиреЗрд▓реНрд╕рди рдХреА рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкрд░рд┐рднрд╛рд╖рд╛ рдЧреИрд░-рд░реЗрдЦреАрдп рджрд╕реНрддрд╛рд╡реЗрдЬреЛрдВ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рдереАред
"рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ" рд╕реЗ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдПрдХ рдЧреИрд░-рд░реЗрдЦреАрдп рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ - рдПрдХ рдкрд╛рда рдЬреЛ рдХрд╛рдВрдЯреЗ рдФрд░ рдкрд╛рдардХ рдХреЛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдПрдХ рджрд╕реНрддрд╛рд╡реЗрдЬ рдЬреЛ рдПрдХ рдЗрдВрдЯрд░реИрдХреНрдЯрд┐рд╡ рд╕реНрдХреНрд░реАрди рдкрд░ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИред рдпрд╣ рдЖрдо рддреМрд░ рдкрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдкрд╛рда рдХреЗ рд▓рд┐рдВрдХ рдХрд╛ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ рдЬреЛ рдкрд╛рдардХ рдХреЛ рд╡рд┐рднрд┐рдиреНрди рдорд╛рд░реНрдЧреЛрдВ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реИред [рдерд┐рдпреЛрдбреЛрд░ рдПрдЪред рдиреЗрд▓реНрд╕рди]
рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рдмрд╛рдж рдореЗрдВ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рддрдВрддреНрд░ рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝ рдЧрдпрд╛ред
рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рдПрдХ рдХрдВрдкреНрдпреВрдЯрд░-рд╕рдорд░реНрдерд┐рдд рд╕реНрдЯреЛрд░реЗрдЬ рдорд╛рдзреНрдпрдо рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдХреЛ рдПрдХ рдЙрдЪреНрдЪ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд╛рд▓реА рдХрдВрдкреНрдпреВрдЯрд░ рд╕реНрдХреНрд░реАрди рдкрд░ рдЙрдирдХреЗ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред [рдЬреЗрдлрд░реА рдХреЛрдВрдХреНрд▓рд┐рди]
рдЬрдм рдореИрдВ "рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ" рдХрд╣рддрд╛ рд╣реВрдВ, рддреЛ рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕реВрдЪрдирд╛ рдФрд░ рдирд┐рдпрдВрддреНрд░рдг рдХреА рдПрдХ рд╕рд╛рде рдкреНрд░рд╕реНрддреБрддрд┐ рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣реЛрддреА рд╣реИ рдХрд┐ рдЬрд╛рдирдХрд╛рд░реА рдЙрдкрд▓рдмреНрдз рд╣реЛ рдЬрд╛рддреА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ (рдпрд╛ рдорд╢реАрди) рдХреЛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдорд┐рд▓рддрд╛ рд╣реИ рдФрд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЪреБрдирддрд╛ рд╣реИред рд╣рд╛рдЗрдкрд░рдореАрдбрд┐рдпрд╛ рдХреЗрд╡рд▓ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдПрдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╣реИ рдХрд┐ рдореАрдбрд┐рдпрд╛ рд╕реНрдЯреНрд░реАрдо рдореЗрдВ рдЕрд╕реНрдерд╛рдпреА рдПрдВрдХрд░ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рда рдХрд╛ рдХреНрдпрд╛ рдЕрд░реНрде рд╣реИ; рдЕрдзрд┐рдХрд╛рдВрд╢ рд╢реЛрдзрдХрд░реНрддрд╛рдУрдВ рдиреЗ рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рдЦрд╛рд░рд┐рдЬ рдХрд░ рджрд┐рдпрд╛ред
рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдХреЗ рд▓рд┐рдП HTML рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЬрдм рд╡реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рд░реВрдк рдФрд░ рд╕рдВрдмрдВрдз рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЛ рд╕рдордЭрддреЗ рд╣реИрдВ рддреЛ рдорд╢реАрдиреЗрдВ рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░ рд╕рдХрддреА рд╣реИрдВред
рдбреЗрд╡ рдЬреЙрдирд╕рди (рдЖрд▓реЛрдЪрдирд╛ рдПрдкреАрдЖрдИ рдХреЗ рд▓реЗрдЦрдХ):
рд╢рд╛рдпрдж рдореИрдВрдиреЗ рдПрдХ рдлрдЬреА рд╢рдмреНрдж рджрд┐рдпрд╛ред рдореЗрд░рд╛ рдХрднреА рднреА рдпрд╣ рджрд╛рд╡рд╛ рдХрд░рдиреЗ рдХрд╛ рдорддрд▓рдм рдирд╣реАрдВ рдерд╛ рдХрд┐ OpenSocial рдпрд╛ SocialSite RPC API RESTful рдереЗред рдореЗрд░реЗ рдмреНрд▓реЙрдЧ рдкрд░ рдЕрдзрд┐рдХ рдХрд░реЗрдВ rollerweblogger.org/roller/entry/the_x_rated_socialsite_api ред
рдЙрддреНрддрд░ рд╣реИ:
OpenSocial RESTful рдкреНрд░реЛрдЯреЛрдХреЙрд▓ RESTful рдирд╣реАрдВ рд╣реИред рдпрд╣ рдЕрдкреЗрдХреНрд╖рд╛рдХреГрдд рдЫреЛрдЯреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рдпрд╣ RPC рдХреЗ рдкрд░рд┐рдгрд╛рдо рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рд╡реЗрдм рдореАрдбрд┐рдпрд╛ рдореЗрдВ рдкреИрдХ рдХрд░ рд░рд╣рд╛ рд╣реИред
рд╕рд╣реА RESTful API рд╣рд╛рдЗрдкрд░рдЯреЗрдХреНрд╕реНрдЯ рдХреА рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИред рд╕реВрдЪрдирд╛ рдХреА рдкреНрд░рддреНрдпреЗрдХ рдкрддрд╛ рдпреЛрдЧреНрдп рдЗрдХрд╛рдИ рдпрд╛ рддреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд▓рд┐рдВрдХ рдФрд░ рдЖрдИрдбреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ) рдпрд╛ рдЕрдиреБрдорд╛рдирд┐рдд рд░реВрдк рд╕реЗ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдордзреНрдпрдо рдФрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рд╕рдВрд░рдЪрдирд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХреА рдЧрдИ рд╣реИ) рдкрддреЗ рдХрд╛ рд╡рд╣рди рдХрд░рддреА рд╣реИред рдХреНрд╡реЗрд░реА рдкрд░рд┐рдгрд╛рдореЛрдВ рдХреЛ рдСрдмреНрдЬреЗрдХреНрдЯ рд╕реВрдЪрдирд╛рдУрдВ рдХреЗ рд╕рд░рдгрд┐рдпреЛрдВ рдХреЗ рдмрдЬрд╛рдп рд╕рд╛рд░рд╛рдВрд╢ рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рд▓реЗ рд▓рд┐рдВрдХ рдХреА рд╕реВрдЪреА рджреНрд╡рд╛рд░рд╛ рджрд░реНрд╢рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреНрд╡реЗрд░реА рд╕рдВрд╕рд╛рдзрди рдкрд╣рдЪрд╛рди рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ)ред рд╕рдВрд╕рд╛рдзрди рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╕реНрд╡-рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рд╣реИрдВ: рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рд╕рдВрд╕рд╛рдзрди рдПрдХ OpenSocialist рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЗрд╡рд▓ рдкреНрд░рд╛рдкреНрдд рдЕрднреНрдпрд╛рд╡реЗрджрди рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░рддрд╛ рд╣реИред
рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪреЗрдВред рдСрдирд▓рд╛рдЗрди рдмреИрдВрдХрд┐рдВрдЧ рд╕рдВрд╕рд╛рдзрди рдФрд░ рд╡рд┐рдХреА рдХреЗ рдмреАрдЪ рдЕрдВрддрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд┐рддрдиреЗ рд╡реЗрдм рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЬрд╛рдирддреЗ рд╣реИрдВ? рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рднреА рдирд╣реАрдВред рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдХрд╛рд░реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЙрдиреНрд╣реЗрдВ рд╕рдВрднрд╛рд╡рд┐рдд рд╕реНрдЯреЗрдЯ рдЯреНрд░рд╛рдВрдЬрд╝рд┐рд╢рди: рд▓рд┐рдВрдХ рдФрд░ рдлреЙрд░реНрдо: рдФрд░ рдЗрди рд▓рд┐рдВрдХ рдХреЛ рдЯреНрд░реЗрд╕ рдХрд░рдиреЗ рдкрд░ рдХрд┐рд╕ рддрд░рд╣ рдХреЗ рд╢рдмреНрджрд╛рд░реНрде рдпрд╛ рдХреНрд░рд┐рдпрд╛ рдирд┐рд╣рд┐рдд рд╣реИ, рдпрд╣ рдЬрд╛рдирдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдЙрдиреНрд╣реЗрдВ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдирд┐рдпрдВрддреНрд░рдг рдХреЗ рд░реВрдк рдореЗрдВ рдкреНрд░рд╕реНрддреБрдд рдХрд░рддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╕рдВрднрд╛рд╡рд┐рдд рдмрджрд▓рд╛рд╡ рджреЗрдЦ рд╕рдХреЗ рдФрд░ рдЪрдпрдирд┐рдд рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдкреНрд░рднрд╛рд╡ рдХрд╛ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛ рд╕рдХреЗред рдмреЙрдЯ рдЙрдирдХрд╛ рдкрд╛рд▓рди рдЗрд╕ рд╣рдж рддрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реЛ рдХрд┐ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рд░рд┐рд╢реНрддреЗ, рд╡рд┐рд╢рд┐рд╖реНрдЯ рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ рдФрд░ рдПрдХреНрд╢рди рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рддрддреНрд╡ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдПрдЬреЗрдВрдЯреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдорд╛рд░реНрдЧрджрд░реНрд╢рди рдкреНрд░рджрд╛рди рдХрд░рддреЗ рд╣реИрдВред
рдЙрдкрдпреЛрдЧреА рд▓рд┐рдВрдХ:
1.
рдЕрдиреБрд╡рд╛рдж рд╕рдВрд╕реНрдХрд░рдг habr.com/us/users/arthuriantech рд╕реЗ2.
рдкреБрд░рд╛рдиреА рд░реЙрдп рдХреА рд╡рд╣реА рдереАрд╕рд┐рд╕