JSON API - рд╣рдо рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ

рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рд╡реЗрдм рд╡рд┐рдХрд╛рд╕ рдХреЛ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЕрдм рд╣рдо рд╕рднреА рдкреВрд░реНрдг-рд╕реНрдЯреИрдХ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдирд╣реАрдВ рд╣реИрдВ - рд╣рдо рдлреНрд░рдВрдЯ-рдПрдВрдб рдФрд░ рдмреИрдХ-рдПрдВрдб рд╣реИрдВред рдФрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдмрд╕реЗ рдХрдард┐рди рдмрд╛рдд, рдЬреИрд╕рд╛ рдХрд┐ рдХрд╣реАрдВ рдФрд░ рд╣реИ, рдмрд╛рддрдЪреАрдд рдФрд░ рдПрдХреАрдХрд░рдг рдХреА рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рдлреНрд░рдВрдЯрдПрдВрдб рдПрдкреАрдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдмрд╛рддрдЪреАрдд рдХрд░рддрд╛ рд╣реИред рдФрд░ рд╕рдВрдкреВрд░реНрдг рд╡рд┐рдХрд╛рд╕ рдкрд░рд┐рдгрд╛рдо рдЗрд╕ рдмрд╛рдд рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдПрдкреАрдЖрдИ рдХреНрдпрд╛ рд╣реИ, рдмреИрдХрдПрдВрдб рдФрд░ рдлреНрд░рдВрдЯреЗрдВрдб рдЖрдкрд╕ рдореЗрдВ рдХрд┐рддрдиреЗ рдЕрдЪреНрдЫреЗ рдпрд╛ рдмреБрд░реЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рд╕рднреА рдПрдХ рд╕рд╛рде рдЪрд░реНрдЪрд╛ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдЙрдиреНрдирдпрди рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдФрд░ рдкреВрд░реЗ рджрд┐рди рдЗрд╕реЗ рдЦрд░реНрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдо рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред

рдЪрд░реЛрдВ рдХреЗ рдирд╛рдореЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣реЛрд▓реАрд╡рд░ рдХреЛ рд╕реНрдХрд┐рдб рдФрд░ рдирд╕реНрд▓ рдирд╣реАрдВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдПрдХ рдЕрдЪреНрдЫреЗ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЖрдЗрдП рдмрд╛рдд рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЬреАрд╡рди рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрдпрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЙрд╕реА рд╕рдордп, рд╣рдо рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб рдореЗрдВ рд╡рд┐рд╢реЗрд╖рдЬреНрдЮ рдмрди рдЬрд╛рдПрдВрдЧреЗред



рдЖрдЗрдП рджреВрд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ - рдЬрд┐рд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рдо рд╣рд▓ рдХрд░ рд░рд╣реЗ рд╣реИрдВред

рдмрд╣реБрдд рд╕рдордп рдкрд╣рд▓реЗ, 1959 рдореЗрдВ, рд╕рд┐рд░рд┐рд▓ рдкрд╛рд░реНрдХрд┐рдВрд╕рди (рдмреАрдорд╛рд░реА рд╕реЗ рднреНрд░рдорд┐рдд рдирд╣реАрдВ рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╡рд╣ рдПрдХ рд▓реЗрдЦрдХ рдФрд░ рдПрдХ рдЖрд░реНрдерд┐рдХ рд╡реНрдпрдХреНрддрд┐ рд╣реИ) рдХрдИ рджрд┐рд▓рдЪрд╕реНрдк рдХрд╛рдиреВрдиреЛрдВ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рдерд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдп рдЖрджрд┐ рд╕реЗ рдЦрд░реНрдЪ рдмрдврд╝рддрд╛ рд╣реИред рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХреЛ рдХрд╛рдиреВрди рдХрд╛ рдЕрдзрд┐рдХрд╛рд░ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ:

рдордж рдкрд░ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдореЗрдВ рд▓рдЧрдиреЗ рд╡рд╛рд▓рд╛ рд╕рдордп рд╡рд┐рдЪрд╛рд░ рдХреА рдЧрдИ рд░рд╛рд╢рд┐ рдХреЗ рд╡реНрдпреБрддреНрдХреНрд░рдорд╛рдиреБрдкрд╛рддреА рд╣реЛрддрд╛ рд╣реИред

рдкрд╛рд░реНрдХрд┐рдВрд╕рди рдПрдХ рдЕрд░реНрдерд╢рд╛рд╕реНрддреНрд░реА рдереЗ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЛрдВрдиреЗ рдЕрдкрдиреЗ рдХрд╛рдиреВрдиреЛрдВ рдХреЛ рдЖрд░реНрдерд┐рдХ рд░реВрдк рд╕реЗ рд╕рдордЭрд╛рдпрд╛, рдХреБрдЫ рдЗрд╕ рддрд░рд╣ред рдпрджрд┐ рдЖрдк рдирд┐рджреЗрд╢рдХ рдордВрдбрд▓ рдореЗрдВ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдкрд░рдорд╛рдгреБ рдКрд░реНрдЬрд╛ рд╕рдВрдпрдВрддреНрд░ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ $ 10 рдорд┐рд▓рд┐рдпрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдХрд░реНрдордЪрд╛рд░рд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб рдХреЗ рд▓рд┐рдП 100 рдкрд╛рдЙрдВрдб рдХреЗ рдЖрд╡рдВрдЯрди рд╕реЗ рдмрд╣реБрдд рдХрдо рдЪрд░реНрдЪрд╛ рдХреА рдЬрд╛рдПрдЧреАред рдХреНрдпреЛрдВрдХрд┐ рд╣рд░ рдХреЛрдИ рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд░рдирд╛ рдЬрд╛рдирддрд╛ рд╣реИ, рд╣рд░ рдХрд┐рд╕реА рдХреА рдЕрдкрдиреА рд░рд╛рдп рд╣реИ, рд╣рд░ рдХреЛрдИ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдорд╣рд╕реВрд╕ рдХрд░рддрд╛ рд╣реИ рдФрд░ рднрд╛рдЧ рд▓реЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИ, рдФрд░ рдкрд░рдорд╛рдгреБ рдКрд░реНрдЬрд╛ рд╕рдВрдпрдВрддреНрд░ рдХреБрдЫ рд╕рд╛рд░ рдФрд░ рджреВрд░ рд╣реИ, 10 рдорд┐рд▓рд┐рдпрди рднреА рдХрднреА рдирд╣реАрдВ рджреЗрдЦреЗ рдЧрдП рд╣реИрдВ - рдХрдо рд╕рд╡рд╛рд▓ рд╣реИрдВред

1999 рдореЗрдВ, рдкрд╛рд░реНрдХрд┐рдВрд╕рдВрд╕ рдХреА рддреБрдЪреНрдЫрддрд╛ рдХрд╛ рдирд┐рдпрдо рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЬрд┐рд╕реЗ рддрдм рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ, рдпрд╣ рдХрд╛рдиреВрди рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рдЕрдВрдЧреНрд░реЗрдЬреА рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рд╣рд┐рддреНрдп рдореЗрдВ рдкрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдПрдХ рд░реВрдкрдХ рдХреА рддрд░рд╣ рд▓рдЧ рд░рд╣рд╛ рдерд╛ред рдЗрд╕реЗ рдж рдмреАрдХреЗрд╢реНрдб рдЗрдлреЗрдХреНрдЯ (рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб рдХрд╛ рдкреНрд░рднрд╛рд╡) рдХрд╣рд╛ рдЬрд╛рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рд╕рд╛рд░ рдПрдХ рд╣реА рд╣реИ - рд╣рдо рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ рдФрд░ рдПрдХ рдкрд╛рд╡рд░ рдкреНрд▓рд╛рдВрдЯ рдХреЗ рдирд┐рд░реНрдорд╛рдг рд╕реЗ рдЬреНрдпрд╛рджрд╛ рд▓рдВрдмреА рдЪрд░реНрдЪрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдпрд╣ рд╢рдмреНрдж рдбреЗрдирд┐рд╢ рдбреЗрд╡рд▓рдкрд░ Poul-Henning Kamp рджреНрд╡рд╛рд░рд╛ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреЛ FreeBSD рдХреЗ рдирд┐рд░реНрдорд╛рдг рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдерд╛ред рдбрд┐рдЬрд╛рдЗрди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЗ рджреМрд░рд╛рди, рдЯреАрдо рдиреЗ рдпрд╣ рдЪрд░реНрдЪрд╛ рдХрд░рдиреЗ рдореЗрдВ рдмрд╣реБрдд рд▓рдВрдмрд╛ рд╕рдордп рдмрд┐рддрд╛рдпрд╛ рдХрд┐ рдиреАрдВрдж рд╕рдорд╛рд░реЛрд╣ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рдкреМрд▓-рд╣реЗрдирд┐рдВрдЧ рдХрд╛рдореНрдк рдХреЗ рдПрдХ рдкрддреНрд░ рдХрд╛ рдЙрджреНрдзрд░рдг рд╣реИ (рд╡рд┐рдХрд╛рд╕ рддрдм рдИ-рдореЗрд▓ рдкрддреНрд░рд╛рдЪрд╛рд░ рдореЗрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛):

рдпрд╣ рдиреАрдВрдж рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдкреНрд░рд╕реНрддрд╛рд╡ рдерд╛ (1) DTRT рдпрджрд┐ рдПрдХ рдЧреИрд░-рдкреВрд░реНрдгрд╛рдВрдХ рддрд░реНрдХ рджрд┐рдпрд╛ рдЬрд╛рдП рдЬреЛ рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдШрд╛рд╕-рдЖрдЧ рдХреЛ рдмрдВрдж рдХрд░ рджреЗ рддреЛ рдореИрдВ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЗрд╕рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ рдХрд╣рдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЫреЛрдЯреА рд╡рд╕реНрддреБ рд╣реЛрдЧреАред рдзрд╛рдЧреЗ рдХреА рд▓рдВрдмрд╛рдИ рд╕реЗ рдЙрдореНрдореАрдж рд╣реИ, рдФрд░ рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рдорд╛рд░реЗ рдЖрд╕рдкрд╛рд╕ рдХреА рдХреБрдЫ * рд╕рдорд╕реНрдпрд╛рдУрдВ * рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдХрд╣реАрдВ рдЕрдзрд┐рдХ рдзреНрдпрд╛рди рджреЗ рдЪреБрдХрд╛ рд╣реИред

рдЗрд╕ рдкрддреНрд░ рдореЗрдВ, рд╡реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдмрд╣реБрдд рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЕрдирд╕реБрд▓рдЭреЗ рд╕рдорд╕реНрдпрд╛рдПрдБ рд╣реИрдВ: "рдЪрд▓реЛ рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб рдХреЗ рд╕рд╛рде рд╕реМрджрд╛ рди рдХрд░реЗрдВ, рд╣рдо рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреБрдЫ рдХрд░реЗрдВрдЧреЗ рдФрд░ рдЖрдЧреЗ рдмрдврд╝реЗрдВрдЧреЗ!"

рдЗрд╕рд▓рд┐рдП 1999 рдореЗрдВ рдкреБрд▓реЗ-рд╣реЗрдирд┐рдВрдЧ рдХрд╛рдореНрдк рдиреЗ рдЕрдВрдЧреНрд░реЗрдЬреА рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рд╣рд┐рддреНрдп рдореЗрдВ рдмрд┐рдХреЗрд╢реНрдб рд╢рдмреНрдж рдХреА рд╢реБрд░реБрдЖрдд рдХреА, рдЬрд┐рд╕реЗ рдлрд┐рд░ рд╕реЗ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

рдХреЛрдб рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рд╕реЗ рдЙрддреНрдкрдиреНрди рд╢реЛрд░ рдХреА рдорд╛рддреНрд░рд╛ рдкрд░рд┐рд╡рд░реНрддрди рдХреА рдЬрдЯрд┐рд▓рддрд╛ рдХреЗ рд╡рд┐рдкрд░реАрдд рдЖрдиреБрдкрд╛рддрд┐рдХ рд╣реИред

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рд╣рдо рдЬреЛ рдмрджрд▓рд╛рд╡ рдпрд╛ рдмрджрд▓рд╛рд╡ рдХрд░рддреЗ рд╣реИрдВ, рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдореЗрдВ рдЬрд┐рддрдиреА рдЬреНрдпрд╛рджрд╛ рд░рд╛рдп рд╕реБрдирдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдХрдИ рд▓реЛрдЧ рдЗрд╕рд╕реЗ рдорд┐рд▓реЗ рд╣реИрдВред рдпрджрд┐ рд╣рдо рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдкреНрд░рд╢реНрди рдХреЛ рд╣рд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЪрд░ рдХрд╛ рдирд╛рдо рдХреИрд╕реЗ рджрд┐рдпрд╛ рдЬрд╛рдП, рддреЛ рдпрд╣ рдорд╢реАрди рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИ - рдпрд╣ рдкреНрд░рд╢реНрди рднрд╛рд░реА рд╕рдВрдЦреНрдпрд╛ рдореЗрдВ рд╣реЛрд▓реАрд╡рд░реНрд╕ рдХрд╛ рдХрд╛рд░рдг рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди рдЧрдВрднреАрд░, рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдорд╣рддреНрд╡рдкреВрд░реНрдг рдЪрд░реНрдЪрд╛ рдФрд░ рдкреГрд╖реНрдарднреВрдорд┐ рдореЗрдВ рдирд╣реАрдВ рдЬрд╛рддреЗ рд╣реИрдВред

рдЖрдкрдХреЛ рдХреНрдпрд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЕрдзрд┐рдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ: рд╣рдо рдмреИрдХрдПрдВрдб рдФрд░ рдлреНрд░рдВрдЯрдПрдВрдб рдпрд╛ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рдмреАрдЪ рдХреИрд╕реЗ рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВ? рд╣рд░ рдХреЛрдИ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╕реЛрдЪрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЛрдИ рднреА рдЧреНрд░рд╛рд╣рдХ, рдПрдХ рд╡реНрдпрдХреНрддрд┐ рдЬреЛ рдЖрдкрд╕реЗ рдкреИрд╕реЗ рд▓рд╛рдиреЗ рдХреА рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ, рд╡рд╣ рдХрд╣реЗрдЧрд╛: "рдореБрдЭреЗ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдирд╛ рд╡реНрдпрд╡рд╕рд╛рдп рдХрд░реЛ!" рд╡рд╣ рдмрд┐рд▓реНрдХреБрд▓ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдмреИрдХрдПрдВрдб рдФрд░ рдлреНрд░рдВрдЯреЗрдВрдб рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреИрд╕реЗ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рддреЗ рд╣реИрдВред рд╢рд╛рдпрдж рд╡рд╣ рдпрд╣ рднреА рдирд╣реАрдВ рдЬрд╛рдирддрд╛ рдХрд┐ рдмреИрдХрдПрдВрдб рдФрд░ рдлреНрд░рдВрдЯрдПрдВрдб рдХреНрдпрд╛ рд╣реИред

рдкрд░рд┐рдЪрдп рдкреНрд░рд╕реНрддреБрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдореИрдВ рдХрд╣рдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛: рдПрдкреАрдЖрдИ рдПрдХ рдмрд╛рдЗрдХ рд╢реЗрдб рд╣реИред


рдкреНрд░рд╕реНрддреБрддрд┐ рдХреА рдХрдбрд╝реА

рд╕реНрдкреАрдХрд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ: рдПрд▓реЗрдХреНрд╕реА рдЕрд╡реЗрджреАрд╡ (рдПрд╡реАрдбреАрд╡) рдХрдВрдкрдиреА рдиреНрдпреВрд░реЙрди.рдбрд┐рдЬрд┐рдЯрд▓ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддреА рд╣реИ, рдЬреЛ рдиреНрдпреВрд░реЙрдиреНрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреА рд╣реИ рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдПрдХ рд╢рд╛рдВрдд рджреГрд╢реНрдп рдмрдирд╛рддреА рд╣реИред рдПрд▓реЗрдХреНрд╕ рдУрдкрдирд╕реЛрд░реНрд╕ рдкрд░ рднреА рдзреНрдпрд╛рди рджреЗрддрд╛ рд╣реИ рдФрд░ рд╕рднреА рдХреЛ рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИред рд╡рд╣ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдореЗрдВ рд▓рдЧреЗ рд╣реБрдП рдереЗ - 2002 рдХреЗ рдмрд╛рдж рд╕реЗ, рдЙрдиреНрд╣реЛрдВрдиреЗ рдкреНрд░рд╛рдЪреАрди рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд╛рдпрд╛, рдЬрдм рдХрдВрдкреНрдпреВрдЯрд░ рдмрдбрд╝реЗ рдереЗ, рдЗрдВрдЯрд░рдиреЗрдЯ рдЫреЛрдЯрд╛ рдерд╛, рдФрд░ рдЬреЗрдПрд╕ рдХреА рдХрдореА рдиреЗ рдХрд┐рд╕реА рдХреЛ рдкрд░реЗрд╢рд╛рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдФрд░ рд╕рднреА рдиреЗ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдкрд░ рд╡реЗрдмрд╕рд╛рдЗрдЯреЗрдВ рдмрдирд╛рдИрдВред

рдмрд╛рдЗрдХ рд╢реЗрдб рд╕реЗ рдХреИрд╕реЗ рдирд┐рдкрдЯреЗрдВ?


рд╕рдореНрдорд╛рдирд┐рдд рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рд╕рд┐рд░рд┐рд▓ рдкрд╛рд░реНрдХрд┐рдВрд╕рди рдиреЗ рддреБрдЪреНрдЫрддрд╛ рдХреЗ рдХрд╛рдиреВрди рдХрд╛ рдкрд╛рд▓рди рдХрд┐рдпрд╛, рд╡рд╣ рдмрд╣реБрдд рдЪрд░реНрдЪрд╛ рдореЗрдВ рдерд╛ред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдпрд╣рд╛рдВ рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб рдХреЗ рдкреНрд░рднрд╛рд╡ рд╕реЗ рдЖрд╕рд╛рдиреА рд╕реЗ рдмрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  1. рд╕рд▓рд╛рд╣ рдордд рд╕реБрдиреЛред рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд┐рдЪрд╛рд░ рдмрд╣реБрдд рдРрд╕рд╛ рд╣реИ - рдпрджрд┐ рдЖрдк рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рд╕реБрдирддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рдмрд╣реБрдд рдХреБрдЫ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ, рдФрд░ рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВред
  2. рдЬреИрд╕рд╛ рдЪрд╛рд╣реЛ рд╡реИрд╕рд╛ рдХрд░реЛред "рдореИрдВ рдПрдХ рдХрд▓рд╛рдХрд╛рд░ рд╣реВрдБ, рдореИрдВ рдРрд╕рд╛ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ!" - рдмрд┐рдирд╛ рдмрд┐рдХреЗ рд╣реБрдП рдкреНрд░рднрд╛рд╡, рдЖрдкрдХреЛ рдЬреЛ рдХреБрдЫ рднреА рдЪрд╛рд╣рд┐рдП рд╡рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдЙрдЯрдкреБрдЯ рдкрд░ рдмрд╣реБрдд рдЕрдЬреАрдм рдЪреАрдЬреЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИрдВред рдпрд╣ рдЕрдХреНрд╕рд░ рдлреНрд░реАрд▓рд╛рдВрд╕ рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдЖрдк рдЙрди рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЖрдП рдереЗ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдЕрдиреНрдп рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдкреВрд░рд╛ рдХрд░рдирд╛ рдерд╛ рдФрд░ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдХрд╛рд░рдг рдЖрдк рд╣рддрдкреНрд░рдн рдереЗред
  3. рдХреНрдпрд╛ рдЦреБрдж рд╕реЗ рдкреВрдЫрдирд╛ рдЬрд╝рд░реВрд░реА рд╣реИ? рдпрджрд┐ рдирд╣реАрдВ, рддреЛ рдЖрдк рдмрд╕ рдЗрд╕ рдкрд░ рдЪрд░реНрдЪрд╛ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдЪреЗрддрдирд╛ рдХреА рдмрд╛рдд рд╣реИред
  4. рд╡рд╕реНрддреБрдирд┐рд╖реНрда рдорд╛рдкрджрдВрдб рдХрд╛ рдкреНрд░рдпреЛрдЧ рдХрд░реЗрдВред рдореИрдВ рд░рд┐рдкреЛрд░реНрдЯ рдореЗрдВ рдЗрд╕ рдмрд┐рдВрджреБ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмреЛрд▓реВрдВрдЧрд╛ред рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб рдХреЗ рдкреНрд░рднрд╛рд╡ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЙрди рдорд╛рдирджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЙрджреНрджреЗрд╢реНрдпрдкреВрд░реНрдг рд░реВрдк рд╕реЗ рдХрд╣рддреЗ рд╣реИрдВ рдХрд┐ рдмреЗрд╣рддрд░ рд╣реИред рд╡реЗ рдореМрдЬреВрдж рд╣реИрдВред
  5. рдЬреЛ рдЖрдк рд╕рд▓рд╛рд╣ рдирд╣реАрдВ рд╕реБрдирдирд╛ рдЪрд╛рд╣рддреЗ, рдЙрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рди рдХрд░реЗрдВред рд╣рдорд╛рд░реА рдХрдВрдкрдиреА рдореЗрдВ, рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреИрдХреЗрдВрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкрд░рд┐рдЪрдп рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдРрд╕рд╛ рдХреБрдЫ рдХрд░рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡реЗ рджреВрд╕рд░реЛрдВ рдХреЛ рдирд╣реАрдВ рдмрддрд╛рддреЗ рд╣реИрдВред рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк, рд╣рдо рдЖрд╢реНрдЪрд░реНрдп рдореЗрдВ рдкрдбрд╝ рдЬрд╛рддреЗ рд╣реИрдВред рдпрд╣ рддрд░реАрдХрд╛ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдореЗрдВ рдпрд╣ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдирд╣реАрдВ рд╣реИред
  6. рдпрджрд┐ рдЖрдк рд╕рдорд╕реНрдпрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░рд╡рд╛рд╣ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЗрд╕реЗ рд╣реЛрд▓рд┐рд╡рд░реЛрд╡ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЖрдиреЗ рд╡рд╛рд▓реЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдХреЛ рднреА рдЬрд╛рдиреЗ рдпрд╛ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ ред

рдПрдВрдЯреА-рдмрд╛рдЗрдХреЗрдЬрд┐рдВрдЧ рдЯреВрд▓


рдореИрдВ рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрджреНрджреЗрд╢реНрдп рд╕рд╛рдзрдиреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред рдпрд╣ рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдПрдВрдЯреА-рдмрд╛рдЗрдХреЗрдЬрд┐рдВрдЧ рдЯреВрд▓ рдХреНрдпрд╛ рд╣реИ, рдореИрдВ рдЖрдкрдХреЛ рдПрдХ рдЫреЛрдЯреА рд╕реА рдХрд╣рд╛рдиреА рд╕реБрдирд╛рдКрдВрдЧрд╛ред

рдХрд▓реНрдкрдирд╛ рдХреАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдмреИрдХрдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рд╣реИред рд╡рд╣ рд╣рд╛рд▓ рд╣реА рдореЗрдВ рдХрдВрдкрдиреА рдореЗрдВ рдЖрдпрд╛ рдерд╛, рдФрд░ рдЙрд╕реЗ рдПрдХ рдЫреЛрдЯреА рд╕реЗрд╡рд╛ рдбрд┐рдЬрд╛рдЗрди рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрджреЗрд╢ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдмреНрд▓реЙрдЧ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ REST рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рд▓рд┐рдЦрдирд╛ рд╣реЛрдЧрд╛ред

рд░реЙрдп рдлреАрд▓реНрдбрд┐рдВрдЧ, REST рдХреЗ рд▓реЗрдЦрдХ

рдлреЛрдЯреЛ рдореЗрдВ, рд░реЙрдп рдлреАрд▓реНрдбрд┐рдВрдЧ, рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ 2000 рдореЗрдВ рдЕрдкрдиреА рдереАрд╕рд┐рд╕ "рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рд╢реИрд▓рд┐рдпреЛрдВ рдФрд░ рдиреЗрдЯрд╡рд░реНрдХ рд╕реЙрдлрд╝реНрдЯрд╡реЗрдпрд░ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреЗ рдбрд┐рдЬрд╛рдЗрди" рдХрд╛ рдмрдЪрд╛рд╡ рдХрд┐рдпрд╛ рдФрд░ рдЗрд╕ рддрд░рд╣ рд╕реЗ REST рд╢рдмреНрдж рдХреЛ рдкреЗрд╢ рдХрд┐рдпрд╛ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдиреНрд╣реЛрдВрдиреЗ HTTP рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрдВрдЯрд░рдиреЗрдЯ рдХреЗ рд╕рдВрд╕реНрдерд╛рдкрдХреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИред

REST рд╡рд╛рд╕реНрддреБ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рд╣реИ рдЬреЛ рдХрд╣рддрд╛ рд╣реИ рдХрд┐ REST рдкреНрд░реЛрдЯреЛрдХреЙрд▓, REST APIs, RESTful рд╕реЗрд╡рд╛рдУрдВ рдХреЛ рдХреИрд╕реЗ рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЬрд╛рдПред рдпреЗ рдХрд╛рдлреА рд╕рд╛рд░рдЧрд░реНрднрд┐рдд рдФрд░ рдЬрдЯрд┐рд▓ рд╡рд╛рд╕реНрддреБ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИрдВред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдЖрдк рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдиреЗ рдХрднреА рднреА рдХрд┐рд╕реА RESTful рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдмрдирд╛ рдПрдХ рдПрдкреАрдЖрдИ рдирд╣реАрдВ рджреЗрдЦрд╛ рд╣реИред

рдЕрдиреНрдп рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдБ


рдореИрдВ рдЖрд░рдИрдПрд╕рдЯреА рдкреНрд░реЛрдЯреЛрдХреЙрд▓ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рджреВрдВрдЧрд╛, рдЬрд┐рдирдХрд╛ рдореИрдВ рдлрд┐рд░ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реВрдВрдЧрд╛ рдФрд░ рднрд░реЛрд╕рд╛ рдХрд░реВрдВрдЧрд╛ред рдЙрдирдореЗрдВ рд╕реЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ, рдЖрдк рд╡рд┐рдХрд┐рдкреАрдбрд┐рдпрд╛ рдкрд░ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдкрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

1. рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдореЙрдбрд▓ред
REST рдХрд╛ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рд┐рджреНрдзрд╛рдВрдд, рдпрд╛рдиреА рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рдмрд╛рддрдЪреАрддред REST рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдмреИрдХрдПрдВрдб рдПрдХ рд╕рд░реНрд╡рд░ рд╣реИ, рдлреНрд░рдВрдЯ-рдПрдВрдб рдПрдХ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣реИ, рдФрд░ рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ-рд╕рд░реНрд╡рд░ рдкреНрд░рд╛рд░реВрдк рдореЗрдВ рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рднреА рдПрдХ рдЧреНрд░рд╛рд╣рдХ рд╣реИрдВред рд░реЗрдлреНрд░рд┐рдЬрд░реЗрдЯрд░ рдХреЗ рд▓рд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕, рдЕрдиреНрдп рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП - рдЧреНрд░рд╛рд╣рдХ рднрд╛рдЧ рднреА рд╡рд┐рдХрд╕рд┐рдд рдХрд░рддреЗ рд╣реИрдВред RESTful API рд╡рд╣ рд╕рд░реНрд╡рд░ рд╣реИ рдЬрд┐рд╕реЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдХреНрд╕реЗрд╕ рдХрд░рддрд╛ рд╣реИред

2. рд╣рд╛рд▓рдд рдХреА рдХрдореАред
рд╕рд░реНрд╡рд░ рдкрд░ рдХреЛрдИ рд░рд╛рдЬреНрдп рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЕрд░реНрдерд╛рддреН, рдЙрддреНрддрд░ рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╕рднреА рдЪреАрдЬреЗрдВ рдЕрдиреБрд░реЛрдз рдореЗрдВ рдЖрддреА рд╣реИрдВред рдЬрдм рдХреЛрдИ рд╕рддреНрд░ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рдВрдЧреНрд░рд╣реАрдд рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд╕рддреНрд░ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдЙрддреНрддрд░ рдЖрддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ REST рд╕рд┐рджреНрдзрд╛рдВрдд рдХрд╛ рдЙрд▓реНрд▓рдВрдШрди рд╣реИред

3. рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреА рдПрдХрд░реВрдкрддрд╛ред
рдпрд╣ рдкреНрд░рдореБрдЦ рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рд╣реИ, рдЬрд┐рд╕ рдкрд░ REST API рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

  • рд╕рдВрд╕рд╛рдзрди рдкрд╣рдЪрд╛рди рдпрд╣ рд╣реИ рдХрд┐ рд╣рдореЗрдВ рдПрдХ URL рдХреИрд╕реЗ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред REST рдкрд░, рд╣рдо рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд▓рд┐рдП рд╕рд░реНрд╡рд░ рдХреА рдУрд░ рдореБрдбрд╝рддреЗ рд╣реИрдВред
  • рдкреНрд░рд╕реНрддреБрддрд┐ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рд╣реЗрд░рдлреЗрд░ред рд╕рд░реНрд╡рд░ рд╣рдореЗрдВ рдПрдХ рджреГрд╢реНрдп рджреЗрддрд╛ рд╣реИ рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ рд╕реЗ рдЕрд▓рдЧ рд╣реИред рдпрджрд┐ рдЖрдк MySQL рдпрд╛ PostgreSQL рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ рддреЛ рдЗрд╕рд╕реЗ рдХреЛрдИ рдлрд░реНрдХ рдирд╣реАрдВ рдкрдбрд╝рддрд╛ - рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдХ рджреГрд╢реНрдп рд╣реИред
  • рд╕реНрд╡-рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╕рдВрджреЗрд╢ - рдЕрд░реНрдерд╛рддреН, рд╕рдВрджреЗрд╢ рдореЗрдВ рдЖрдИрдбреА рд╣реИ, рд▓рд┐рдВрдХ рдЬрд╣рд╛рдВ рдЖрдк рдЗрд╕ рд╕рдВрджреЗрд╢ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдЙрди рд╕рднреА рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрд╕ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • рд╣рд╛рдЗрдкрд░рдореАрдбрд┐рдпрд╛ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреЗ рд╕рд╛рде рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдПрдХ рдХрдбрд╝реА рд╣реИред рдпрд╣ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рднреА REST API рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд░реЙрдп рдлреАрд▓реНрдбрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рд╡рд░реНрдгрд┐рдд рд╣реИред

3 рдФрд░ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИрдВ рдЬреЛ рдореИрдВ рдЙрджреНрдзреГрдд рдирд╣реАрдВ рдХрд░рддрд╛ рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдореЗрд░реА рдХрд╣рд╛рдиреА рдХреЗ рд▓рд┐рдП рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИрдВред

рд░реЗрд╕реНрдЯрдлреБрд▓ рдмреНрд▓реЙрдЧ


рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреИрдХрдПрдВрдб рдбреЗрд╡рд▓рдкрд░, рдЬрд┐рдиреНрд╣реЗрдВ рд░реЗрд╕реНрдЯрдлреБрд▓ рдкрд░ рдмреНрд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕реЗрд╡рд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛ред рдиреАрдЪреЗ рдПрдХ рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред



рдпрд╣ рдПрдХ рдРрд╕реА рд╕рд╛рдЗрдЯ рд╣реИ рдЬрд┐рд╕ рдкрд░ рд▓реЗрдЦ рд╣реИрдВ, рдЖрдк рдЙрди рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдЦ рдФрд░ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рдПрдХ рд▓реЗрдЦрдХ рд╣реИ - рдПрдХ рдорд╛рдирдХ рдХрд╣рд╛рдиреАред рд╣рдорд╛рд░реЗ рдиреМрд╕рд┐рдЦрд┐рдП рдмреИрдХрдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рдЗрд╕ рдмреНрд▓реЙрдЧ рдХреЗ рд▓рд┐рдП рдПрдХ RESTful API рдХрд░реЗрдВрдЧреЗред

рд╣рдо CRUD рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд╕рднреА рдмреНрд▓реЙрдЧ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдХрд┐рд╕реА рднреА рд╕рдВрд╕рд╛рдзрди рдХреЛ рдмрдирд╛рдирд╛, рдкрдврд╝рдирд╛, рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдФрд░ рд╣рдЯрд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдЗрдП CRUD рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрдд рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рдПрдХ RESTful AP рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдмреИрдХрдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рд╕реЗ рдкреВрдЫрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВред рдпрд╣реА рд╣реИ, рд▓реЗрдЦ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рддрд░реАрдХреЗ рд▓рд┐рдЦреЗрдВ, рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдпрд╛ рдПрдХ рд▓реЗрдЦ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ рдФрд░ рд╣рдЯрд╛рдПрдВред

рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╡рд╣ рдпрд╣ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реИред


REST рдХреЗ рд╕рднреА рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ рд╕рдм рдХреБрдЫ рдЧрд▓рдд рд╣реИ ред рд╕рдмрд╕реЗ рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореБрдЭреЗ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдПрдкреАрдЖрдИ рдорд┐рд▓реЗ рдЬреЛ рдХреБрдЫ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддреЗ рдереЗред рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб рд╣реИ, рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдпрд╣ рдЪрд┐рд▓ рдХрд░рдиреЗ рдФрд░ рдмрд╣рд╕ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЕрд╡рд╕рд░ рд╣реИ, рдФрд░ рдПрдХ рдиреМрд╕рд┐рдЦрд┐рдпрд╛ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рд╡рд┐рд╢рд╛рд▓, рдмрд╣рд╛рджреБрд░ рдирдИ рджреБрдирд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕ рдкрд░ рд╡рд╣ рд╣рд░ рдмрд╛рд░ рдареЛрдХрд░ рдЦрд╛рддрд╛ рд╣реИ, рдЧрд┐рд░рддрд╛ рд╣реИ, рдЕрдкрдирд╛ рд╕рд┐рд░ рдореБрдВрдбрд╝рд╡рд╛рддрд╛ рд╣реИред рдЙрд╕реЗ рдмрд╛рд░-рдмрд╛рд░ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред


рдпрд╣ рдПрдХ REST рд╡рд┐рдХрд▓реНрдк рд╣реИред рд╕рдВрд╕рд╛рдзрди рдкрд╣рдЪрд╛рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╣рдо рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВ - рд▓реЗрдЦреЛрдВ рдХреЗ рд╕рд╛рде рдФрд░ рд░реЙрдп рдлреАрд▓реНрдбрд┐рдВрдЧ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд HTTP рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд╡рд╣ рдЕрдкрдиреЗ рдЕрдЧрд▓реЗ рдХрд╛рдо рдореЗрдВ рдЕрдкрдиреЗ рдкрд┐рдЫрд▓реЗ рдХрд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рдерд╛ред

рд▓реЗрдЦреЛрдВ рдХреЛ рдЕрджреНрдпрддрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрдИ рдкреАрдпреВрдЯреА рдкрджреНрдзрддрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдЗрд╕рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рд╢рдмреНрджрд╛рд░реНрде рд╣реИред PATCH рд╡рд┐рдзрд┐ рдЙрди рдлрд╝реАрд▓реНрдб рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рддреА рд╣реИ рдЬреЛ рдкрд╛рд░рд┐рдд рд╣реЛ рдЧрдП рдереЗ, рдФрд░ PUT рдмрд╕ рдПрдХ рд▓реЗрдЦ рдХреЛ рджреВрд╕рд░реЗ рдХреЗ рд╕рд╛рде рдмрджрд▓ рджреЗрддрд╛ рд╣реИред рд╢рдмреНрджрд╛рд░реНрде рджреНрд╡рд╛рд░рд╛, PATCH рдХреЛ рдорд░реНрдЬ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ PUT рдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рд╣рдорд╛рд░реЗ рдиреМрд╕рд┐рдЦрд┐рдП рдмреИрдХрдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рдЧрд┐рд░ рдЧрдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рдЙрдард╛рдпрд╛ рдФрд░ рдХрд╣рд╛: "рд╕рдм рдХреБрдЫ рдХреНрд░рдо рдореЗрдВ рд╣реИ, рдЗрд╕реЗ рдРрд╕реЗ рд╣реА рдХрд░реЛ," рдФрд░ рдЙрд╕рдиреЗ рдИрдорд╛рдирджрд╛рд░реА рд╕реЗ рдЗрд╕реЗ рднреБрдирд╛рдпрд╛ред рд▓реЗрдХрд┐рди рддрдм рд╡рд╣ рдХрд╛рдВрдЯреЛрдВ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдПрдХ рдмрдбрд╝рд╛ рд▓рдВрдмрд╛ рд░рд╛рд╕реНрддрд╛ рдЦреЛрдЬ рд▓реЗрдЧрд╛ред

рдпрд╣ рдЗрддрдирд╛ рд╕рд╣реА рдХреНрдпреЛрдВ рд╣реИ?

  • рдХреНрдпреЛрдВрдХрд┐ рд░реЙрдп рдлреАрд▓реНрдбрд┐рдВрдЧ рдиреЗ рдРрд╕рд╛ рдХрд╣рд╛ рдерд╛;
  • рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ REST рд╣реИ;
  • рдХреНрдпреЛрдВрдХрд┐ рдпреЗ рд╡рд╛рд╕реНрддреБ рд╕рд┐рджреНрдзрд╛рдВрдд рд╣реИрдВ рдЬрд┐рди рдкрд░ рд╣рдорд╛рд░рд╛ рдкреЗрд╢рд╛ рдЖрдзрд╛рд░рд┐рдд рд╣реИред

рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрд╣ рдПрдХ "рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб" рд╣реИ, рдФрд░ рдкрд┐рдЫрд▓реА рд╡рд┐рдзрд┐ рдХрд╛рдо рдХрд░реЗрдЧреАред рдХрдВрдкреНрдпреВрдЯрд░ рдиреЗ REST рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрдЪрд╛рд░ рдХрд┐рдпрд╛, рдФрд░ рд╕рдм рдХреБрдЫ рдХрд╛рдо рдХрд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЕрдм рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдПрдХ рдорд╛рдирдХ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ рд╣реИред

рд▓реЗрдЦ рдХреЛ рд╣рдЯрд╛ рджреЗрдВ


рдПрдХ рд▓реЗрдЦ рдХреЛ рд╣рдЯрд╛рдиреЗ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп, рд╕рдВрд╕рд╛рдзрди рд╡рд┐рдзрд┐ DELETE / рд▓реЗрдЦ рд╣реИ, рдЬреЛ рдЖрдИрдбреА рджреНрд╡рд╛рд░рд╛ рд▓реЗрдЦ рдХреЛ рд╣рдЯрд╛ рджреЗрддрд╛ рд╣реИред HTTP рдореЗрдВ рд╣реЗрдбрд░ рд╣реИрдВред рдПрдХреНрд╕реЗрдкреНрдЯ рд╣реЗрдбрд░ рдЙрд╕ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рдХрд╛рд░ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЧреНрд░рд╛рд╣рдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдХрдирд┐рд╖реНрда рдиреЗ рдПрдХ рд╕рд░реНрд╡рд░ рд▓рд┐рдЦрд╛ рд╣реИ рдЬреЛ 200 рдареАрдХ рджреЗрддрд╛ рд╣реИ, рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░: рдЖрд╡реЗрджрди / рдЬрд╕рди, рдФрд░ рдПрдХ рдЦрд╛рд▓реА рдирд┐рдХрд╛рдп рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ:

01. DELETE /articles/ 1 /1.1
02. Accept: application/json


01. HTTP/1.1 200 OK
02. Content-Type: application/json
03. null

рдпрд╣рд╛рдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд╛рдорд╛рдиреНрдп рдЧрд▓рддреА рдХреА рдЧрдИ рд╣реИ - рдПрдХ рдЦрд╛рд▓реА рд╢рд░реАрд░ ред рд╕рдм рдХреБрдЫ рддрд░реНрдХрд╕рдВрдЧрдд рд▓рдЧрддрд╛ рд╣реИ - рд▓реЗрдЦ рд╣рдЯрд╛ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, 200 рдареАрдХ рд╣реИ, рдПрдкреНрд▓рд┐рдХреЗрд╢рди / рдЬрд╕рди рд╣реЗрдбрд░ рдореМрдЬреВрдж рд╣реИ, рд▓реЗрдХрд┐рди рдЧреНрд░рд╛рд╣рдХ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИред рдпрд╣ рдПрдХ рддреНрд░реБрдЯрд┐ рдлреЗрдВрдХ рджреЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдЦрд╛рд▓реА рдирд┐рдХрд╛рдп рдорд╛рдиреНрдп рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдХрднреА рдПрдХ рд░рд┐рдХреНрдд рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рд╣реИ, рддреЛ рдЖрдкрдХреЛ рдЗрд╕ рддрдереНрдп рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рднреА рдЬреЛрд╕рди рдкрд╛рд░реНрд╕рд░ рдареЛрдХрд░ рдЦрд╛рддрд╛ рд╣реИ рдФрд░ рдЗрд╕ рдкрд░ рдХреНрд░реИрд╢ рд╣реЛрддрд╛ рд╣реИред

рдЗрд╕ рд╕реНрдерд┐рддрд┐ рдХреЛ рдХреИрд╕реЗ рдареАрдХ рдХрд░реЗрдВ? рд╕рдВрднрд╡рдд: рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдХрд▓реНрдк рдЬрд╕рди рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИред рдпрджрд┐ рд╣рдордиреЗ рдХрд╣рд╛: "рд╕реНрд╡реАрдХрд╛рд░ рдХрд░реЗрдВ, рд╣рдореЗрдВ json рджреЗрдВ", рддреЛ рд╕рд░реНрд╡рд░ рдХрд╣рддрд╛ рд╣реИ: "рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░, рдореИрдВ рдЖрдкрдХреЛ json рджреЗрддрд╛ рд╣реВрдВ", json рджреЗред рдПрдХ рдЦрд╛рд▓реА рд╡рд╕реНрддреБ, рдПрдХ рдЦрд╛рд▓реА рд╕рд░рдгреА - рд╡рд╣рд╛рдБ рдХреБрдЫ рд░рдЦреЛ - рдпрд╣ рд╕рдорд╛рдзрд╛рди рд╣реЛрдЧрд╛, рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред

рдЕрднреА рднреА рдПрдХ рд╕рдорд╛рдзрд╛рди рд╣реИред 200 рдУрдХреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдПрдХ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб 204 рд╣реИ - рдХреЛрдИ рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВред рдЗрд╕рдХреЗ рд╕рд╛рде, рдЖрдк рд╢рд░реАрд░ рдХреЛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣рд░ рдХреЛрдИ рдирд╣реАрдВ рдЬрд╛рдирддрд╛ред

рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рдиреЗрддреГрддреНрд╡ рдХрд┐рдпрд╛ред

рдорд╛рдЗрдо рдХреЗ рдкреНрд░рдХрд╛рд░


рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗрд╡рд▓ рд╡реЗрдм рдкрд░ рдПрдХ рдлрд╝рд╛рдЗрд▓ рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреА рддрд░рд╣ рд╣реИрдВред рдЬрдм рд╣рдо рдбреЗрдЯрд╛ рдкреНрд░рд╕рд╛рд░рд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╣рдореЗрдВ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП рдХрд┐ рд╣рдо рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

  • рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдпрд╣ рдкрд╛рда / рд╕рд╛рджрд╛ рд╣реИ - рдХреЗрд╡рд▓ рдкрд╛рдаред
  • рдпрджрд┐ рдХреБрдЫ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдмреНрд░рд╛рдЙрдЬрд╝рд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрд╡реЗрджрди / рдСрдХреНрдЯреЗрдЯ-рд╕реНрдЯреНрд░реАрдо - рдмрд╕ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╕реНрдЯреНрд░реАрдо рд╣реЛред

рдЖрдк рдХреЗрд╡рд▓ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:

  • рдЖрд╡реЗрджрди / рдкреАрдбреАрдПрдл;
  • рдЫрд╡рд┐ / рдкреАрдПрдирдЬреА;
  • рдЖрд╡реЗрджрди / рдЬрд╕рди;
  • рдЖрд╡реЗрджрди / xml;
  • рдЖрд╡реЗрджрди / vnd.ms-excelред

рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдФрд░ рд╕реНрд╡реАрдХрд╛рд░ рд╢реАрд░реНрд╖ рд▓реЗрдЦ рд╣реИрдВ рдФрд░ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИрдВред

API рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдФрд░ рд╣реЗрдбрд░ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

рдпрджрд┐ рдЖрдкрдХрд╛ API JSON рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рд╣рдореЗрд╢рд╛ Accept: application / json рдФрд░ рдХрдВрдЯреЗрдВрдЯ-рдЯрд╛рдЗрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди / json рдкрд╛рд╕ рдХрд░реЗрдВред

рдЙрджрд╛рд╣рд░рдг рдлрд╝рд╛рдЗрд▓ рдкреНрд░рдХрд╛рд░ред


рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗрд╡рд▓ рдЗрдВрдЯрд░рдиреЗрдЯ рдкрд░ рдЗрди рдкреНрд░рдХрд╛рд░ рдХреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рдорд╛рди рд╣реИрдВред

рдЙрддреНрддрд░ рдХреЛрдб


рд╣рдорд╛рд░реЗ рдЬреВрдирд┐рдпрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдХрд╛рд░рдирд╛рдореЛрдВ рдХрд╛ рдЕрдЧрд▓рд╛ рдЙрджрд╛рд╣рд░рдг рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЛрдб рд╣реИред



рд╕рдмрд╕реЗ рдордЬреЗрджрд╛рд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджрд░ 200 рдареАрдХ рд╣реИред рд╣рд░ рдХреЛрдИ рдЙрд╕реЗ рдкреНрдпрд╛рд░ рдХрд░рддрд╛ рд╣реИ - рдЗрд╕рдХрд╛ рдорддрд▓рдм рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рд╕рд╣реА рд╣реЛ рдЧрдпрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдорд╛рдорд▓рд╛ рднреА рдерд╛ - рдореБрдЭреЗ 200 рдУрдХреЗ рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдорд┐рд▓реАрдВред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рдХреБрдЫ рдЧрд┐рд░ рдЧрдпрд╛, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдПрдХ HTML рдкреГрд╖реНрда рдЖрддрд╛ рд╣реИ рдЬрд┐рд╕ рдкрд░ рдПрдХ рдПрдЪрдЯреАрдПрдордПрд▓ рддреНрд░реБрдЯрд┐ рд╕рдВрдХрд▓рд┐рдд рдХреА рдЧрдИ рд╣реИред рдореИрдВрдиреЗ рдХреЛрдб 200 рдУрдХреЗ рдХреЗ рд╕рд╛рде рдПрдХ рдПрдкреНрд▓реАрдХреЗрд╢рди рдЬрд╕рди рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛, рдФрд░ рд╕реЛрдЪрд╛ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреИрд╕реЗ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрд╛рдП? рдЖрдк рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рдЬрд╛рддреЗ рд╣реИрдВ, рд╢рдмреНрдж "рддреНрд░реБрдЯрд┐" рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВ, рдЖрдкрдХреЛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЧрд▓рддреА рд╣реИред

рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, HTTP рдореЗрдВ рдХрдИ рдЕрдиреНрдп рдХреЛрдб рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдФрд░ REST рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ REST рдкрд░ рдХрд░реЗрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рдЗрдХрд╛рдИ (рд▓реЗрдЦ) рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХрд╛ рдЙрддреНрддрд░ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:

  • 201 рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдПрдХ рд╕рдлрд▓ рдХреЛрдб рд╣реИред рд▓реЗрдЦ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд╡рд╛рдм рдореЗрдВ рдЖрдкрдХреЛ рдмрдирд╛рдП рдЧрдП рд▓реЗрдЦ рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • 202 рд╕реНрд╡реАрдХреГрдд рдХрд╛ рдЕрд░реНрде рд╣реИ рдХрд┐ рдЕрдиреБрд░реЛрдз рд╕реНрд╡реАрдХрд╛рд░ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдХрд╛ рдкрд░рд┐рдгрд╛рдо рдмрд╛рдж рдореЗрдВ рд╣реЛрдЧрд╛ред рдпреЗ рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдЪрд▓рдиреЗ рд╡рд╛рд▓реЗ рдСрдкрд░реЗрд╢рди рд╣реИрдВред рд╕реНрд╡реАрдХрд╛рд░ рдХрд┐рдП рдЬрд╛рдиреЗ рдкрд░, рдХреЛрдИ рднреА рд╢рд░реАрд░ рд╡рд╛рдкрд╕ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдк рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдирд╣реАрдВ рджреЗрддреЗ рд╣реИрдВ, рддреЛ рд╢рд░реАрд░ рднреА рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╛ рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдХрд╛ рдкрд╛рда / рд╡рд┐рдорд╛рди - рдпрд╣ рд╕рдм, рдХреЛрдИ рд╕рд╡рд╛рд▓ рдирд╣реАрдВ рд╣реИред рдПрдХ рдЦрд╛рд▓реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдПрдХ рдорд╛рдиреНрдп рдкрд╛рда / рд╡рд┐рдорд╛рди рд╣реИред
  • 204 рдХреЛрдИ рд╕рд╛рдордЧреНрд░реА рдирд╣реАрдВ - рд╢рд░реАрд░ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрдиреБрдкрд╕реНрдерд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИред
  • 403 рдирд┐рд╖рд┐рджреНрдз - рдЖрдкрдХреЛ рдпрд╣ рд▓реЗрдЦ рдмрдирд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИред
  • 404 рдирд╣реАрдВ рдорд┐рд▓рд╛ - рдЖрдк рдХрд╣реАрдВ рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЪрдврд╝ рдЧрдП, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рд╣реИред
  • 409 рд╕рдВрдШрд░реНрд╖ рдПрдХ рдЪрд░рдо рдорд╛рдорд▓рд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрд╣реБрдд рдХрдо рд▓реЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдпрджрд┐ рдЖрдк рдХреНрд▓рд╛рдЗрдВрдЯ рдкрд░ рдЖрдИрдбреА рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рдФрд░ рдмреИрдХрдПрдВрдб рдкрд░ рдирд╣реАрдВ, рдФрд░ рдЙрд╕ рд╕рдордп рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЗрд╕ рд▓реЗрдЦ рдХреЛ рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рд╕рдВрдШрд░реНрд╖ рд╕рд╣реА рдЬрд╡рд╛рдм рд╣реИред

рдЗрдХрд╛рдИ рдирд┐рд░реНрдорд╛рдг


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг: рд╣рдо рдПрдХ рдЗрдХрд╛рдИ рдмрдирд╛рддреЗ рд╣реИрдВ, рд╕рд╛рдордЧреНрд░реА-рдкреНрд░рдХрд╛рд░ рдХрд╣рддреЗ рд╣реИрдВ: рдЖрд╡реЗрджрди / json, рдФрд░ рдЗрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди / json рдХреЛ рдкрд╛рд╕ рдХрд░реЗрдВред рдпрд╣ рдЧреНрд░рд╛рд╣рдХ рдХреЛ рд╣рдорд╛рд░рд╛ рдЙрджреНрджреЗрд╢реНрдп рдмрдирд╛рддрд╛ рд╣реИред рдЪрд▓реЛ рдпрд╣ рдмрд╣реБрдд рд▓реЗрдЦ рдмрдирд╛рддреЗ рд╣реИрдВ:

01. POST /articles /1.1
02. Content-Type: application/json
03. { "id": 1, "title": " JSON API"}


рдЬрд╡рд╛рдм рдореЗрдВ рдХреЛрдб рдЖ рд╕рдХрддрд╛ рд╣реИ:

  • 422 рдЕрд╕рдВрд╕рд╛рдзрд┐рдд рдЗрдХрд╛рдИ - рдПрдХ рдЕрдиреБрддреНрдкрд╛рджрдХ рдЗрдХрд╛рдИред рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд▓рдЧрддрд╛ рд╣реИ - рд╢рдмреНрджрд╛рд░реНрде, рдХреЛрдб рд╣реИ;
  • 403 рдирд┐рд╖рд┐рджреНрдз
  • 500 рдЖрдВрддрд░рд┐рдХ рд╕рд░реНрд╡рд░ рддреНрд░реБрдЯрд┐ред

рд▓реЗрдХрд┐рди рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╕рдордЭ рдореЗрдВ рдирд╣реАрдВ рдЖрддрд╛ рдХрд┐ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реБрдЖ: рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреА рдЗрдХрд╛рдИ рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдореБрдЭреЗ рд╡рд╣рд╛рдВ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдЖрдЦрд┐рд░рдХрд╛рд░ рд╕рд░реНрд╡рд░ рдХрд╛ рдХреНрдпрд╛ рд╣реБрдЖ?

рд╡рд╛рдкрд╕реА рдХреА рддреНрд░реБрдЯрд┐рдпрд╛рдВ


рдЬрд╡рд╛рдм рдореЗрдВ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ (рдФрд░ рдЬреВрдирд┐рдпрд░реНрд╕ рдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрддрд╛ рдирд╣реАрдВ рд╣реИ), рддреНрд░реБрдЯрд┐рдпрд╛рдВ рд▓реМрдЯрд╛рдПрдВред рдпрд╣ рдЕрд░реНрде рдФрд░ рд╕рд╣реА рд╣реИред рд╡реИрд╕реЗ, рдлреАрд▓реНрдбрд┐рдВрдЧ рдиреЗ рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдерд╛, рдЕрд░реНрдерд╛рдд рдпрд╣ рдмрд╛рдж рдореЗрдВ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рд░реАрд╕реНрдЯ рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдмрдирд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдмреИрдХрдПрдВрдб рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рд░рдгреА рд▓реМрдЯрд╛ рд╕рдХрддрд╛ рд╣реИ, рдХрдИ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред

01. HTTP/1.1 422 Unprocessable Entity
02. Content-Type: application/json
03.
04. { "errors": [{
05. "status": "422",
06. "title": "Title already exist",
07. }]}


рдкреНрд░рддреНрдпреЗрдХ рддреНрд░реБрдЯрд┐ рдХреА рдЕрдкрдиреА рд╕реНрдерд┐рддрд┐ рдФрд░ рд╢реАрд░реНрд╖рдХ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА REST рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдХрдиреНрд╡реЗрдВрд╢рди рд╕реНрддрд░ рдкрд░ рдЪрд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдмрд╣рд╕ рдХреЛ рд░реЛрдХрдиреЗ рдФрд░ рдПрдХ рдЕрдЪреНрдЫрд╛, рд╕рд╣реА рдПрдкреАрдЖрдИ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдорд╛рд░рд╛ рдПрдВрдЯреА-рдмрд╛рдЗрдХреЗрдЬрд┐рдВрдЧ рдЯреВрд▓ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рдкреЗрдЬрд┐рдВрдЧ рдЬреЛрдбрд╝реЗрдВ


рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЙрджрд╛рд╣рд░рдг: рдбрд┐рдЬрд╛рдЗрдирд░ рд╣рдорд╛рд░реА рд╢реБрд░реБрдЖрдд рдореЗрдВ рдмреИрдХреЗрдВрдб рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдкрд╛рд╕ рдЖрддреЗ рд╣реИрдВ рдФрд░ рдХрд╣рддреЗ рд╣реИрдВ: "рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдИ рд▓реЗрдЦ рд╣реИрдВ, рд╣рдореЗрдВ рдкреГрд╖реНрдард╛рдВрдХрди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рд╣рдордиреЗ рдЗрд╕реЗ рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛ред "


рдЖрдЗрдП рдЗрд╕реЗ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВред рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, 336 рдкреГрд╖реНрда рд╣рдбрд╝рддрд╛рд▓реА рд╣реИрдВред рдЬрдм рдореИрдВрдиреЗ рдпрд╣ рджреЗрдЦрд╛, рддреЛ рдореИрдВрдиреЗ рд╕реЛрдЪрд╛ рдХрд┐ рдпрд╣ рдЖрдВрдХрдбрд╝рд╛ рдХреИрд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПред 336 рдХрд╣рд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдХреНрдпреЛрдВрдХрд┐ рдЬрдм рдореИрдВ рд▓реЗрдЦреЛрдВ рдХреА рд╕реВрдЪреА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддрд╛ рд╣реВрдВ рддреЛ рдореБрдЭреЗ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдорд┐рд▓рддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдирдореЗрдВ рд╕реЗ 10 рд╣рдЬрд╛рд░ рд╣реИрдВ, рдЕрд░реНрдерд╛рддреН, рдореБрдЭреЗ рд╕рднреА рд▓реЗрдЦреЛрдВ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдиреЗ, рдкреГрд╖реНрдареЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реЗ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд░рдиреЗ рдФрд░ рдЗрд╕ рд╕рдВрдЦреНрдпрд╛ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдмрд╣реБрдд рд▓рдВрдмреЗ рд╕рдордп рддрдХ рдореИрдВ рдЗрди рд▓реЗрдЦреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░реВрдВрдЧрд╛, рдореБрдЭреЗ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рдЬрд▓реНрджреА рд╕реЗ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдорд╛рд░рд╛ рдПрдкреАрдЖрдИ рдПрдХ рд╕реВрдЪреА рджреЗрддрд╛ рд╣реИ, рддреЛ рдЗрд╕ рд░рд┐рдХреЙрд░реНрдб рдХреЛ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рдХрд╣рд╛рдВ рд░рдЦрд╛ рдЬрд╛рдП, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╕рд░рдгреА рдЖрддреА рд╣реИред рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рдЪреВрдВрдХрд┐ рд░рд┐рдХреЙрд░реНрдб рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдбрд╛рд▓реА рдЧрдИ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рддрд╛рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦ рдХрд╣рддрд╛ рд╣реИ: "рдФрд░ рд╣рдо рд╕рднреА рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╣реИрдВ!"

рд╣рд╛рд▓рд╛рдБрдХрд┐, REST API рдХреЗ рдКрдкрд░ рдПрдХ рдХрдиреНрд╡реЗрдВрд╢рди рд╣реИ рдЬреЛ рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рд╕реВрдЪреА рдЕрдиреБрд░реЛрдз


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

01. GET /articles? page[size]=30&page[number]=2
02. Content-Type: application/json

01. HTTP/1.1 200 OK
02. {
03. "data": [{ "id": 1, "title": "JSONAPI"}, ...],
04. "meta": { "count": 10080 }
05. }

рдЗрд╕ рддрд░рд╣, рдПрдкреАрдЖрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рд╡рд╛рдкрд╕ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЧрд┐рдирддреА рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рдЕрдиреНрдп рдЬрд╛рдирдХрд╛рд░реА рд╣реЛ рд╕рдХрддреА рд╣реИ - рдпрд╣ рдПрдХреНрд╕реНрдЯреЗрдВрд╕рд┐рдмрд▓ рд╣реИред рдЕрдм, рдпрджрд┐ рдХрдирд┐рд╖реНрда рдиреЗ рдЗрд╕реЗ рдареАрдХ рд╕реЗ рдирд╣реАрдВ рдХрд┐рдпрд╛, рдФрд░ рдХреЗрд╡рд▓ рдЬрдм рдЙрд╕реЗ рдкрд╛рдЬрд┐рдиреЗрд╢рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛, рддрдм рдЙрд╕рдиреЗ рдкрд┐рдЫрдбрд╝реЗ рдЕрд╕рдВрдЧрдд рдкрд░рд┐рд╡рд░реНрддрди рдХрд┐рдпрд╛ , рдПрдкреАрдЖрдИ рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛, рдФрд░ рд╕рднреА рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЗрд╕реЗ рдлрд┐рд░ рд╕реЗ рдХрд░рдирд╛ рдкрдбрд╝рд╛ - рдЖрдорддреМрд░ рдкрд░ рдмрд╣реБрдд рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИред

рдкрд╛рдЬрд┐рдиреЗрд╢рди рдЕрд▓рдЧ рд╣реИред рдореИрдВ рдХрдИ рдЬреАрд╡рди рд╣реИрдХ рдХреА рдкреЗрд╢рдХрд╢ рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

[рдСрдлрд╕реЗрдЯ] ... [рд╕реАрдорд╛]


01. GET /articles? page[offset]=30&page[limit]=30
02. Content-Type: application/json

01. HTTP/1.1 200 OK
02. {
03. "data": [{ "id": 1, "title": "JSONAPI"}, ...],
04. "meta": { "count": 10080 }
05. }

рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ [рдСрдлрд╕реЗрдЯ] ... [рд╕реАрдорд╛] рд╕рдмрдХреЛрд░реНрдЯреЗрдХреНрд╕ рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдкреГрд╖реНрда [рдЖрдХрд╛рд░] рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ ... рдкреГрд╖реНрда [рд╕рдВрдЦреНрдпрд╛] рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдереЛрдбрд╝рд╛ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╣реИред

рдХрд░реНрд╕рд░ рдХреА рд╕реНрдерд┐рддрд┐


01. GET /articles? page[published_at]=1538332156
02. Content-Type: application/json


01. HTTP/1.1 200 OK
02. {
03. "data": [{ "id": 1, "title": "JSONAPI"}, ...],
04. "meta": { "count": 10080 }
05. }


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

рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдХрд░реНрд╕рд░ рдкреЗрдЬреЗрд╢рди рджреНрд╡рд╛рд░рд╛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╣рдо рдХрд╣рддреЗ рд╣реИрдВ: "рдЙрд╕ рд╕рдордп рдкреНрд░рдХрд╛рд╢рд┐рдд рд▓реЗрдЦ рдХреЗ рдмрд╛рдж рдЖрдиреЗ рд╡рд╛рд▓реЗ рд▓реЗрдЦреЛрдВ рдХреЛ рд▓реЛрдб рдХрд░реЗрдВ" - рд╡рд┐рд╢реБрджреНрдз рд░реВрдк рд╕реЗ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдЕрдм рдХреЛрдИ рдмрджрд▓рд╛рд╡ рдирд╣реАрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдЕрдЪреНрдЫрд╛ рд╣реИред

рд╕рдорд╕реНрдпрд╛ N рез


рдЕрдЧрд▓реА рд╕рдорд╕реНрдпрд╛ рдЬреЛ рд╣рдорд╛рд░реЗ рдЬреВрдирд┐рдпрд░ рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рд╕рд╛рдордирд╛ рдХрд░реЗрдЧреА, рд╡рд╣ рдПрди + 1 рд╕рдорд╕реНрдпрд╛ рд╣реИ (рдмреИрдХреЗрдВрдбрд░реНрд╕ рд╕рдордЭ рдЬрд╛рдПрдЧрд╛)ред рдорд╛рди рд▓реАрдЬрд┐рдП рдЖрдк 10 рд▓реЗрдЦреЛрдВ рдХреА рд╕реВрдЪреА рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд╣рдо рд▓реЗрдЦреЛрдВ рдХреА рдПрдХ рд╕реВрдЪреА рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦ рдореЗрдВ рдПрдХ рд▓реЗрдЦрдХ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдПрдХ рд▓реЗрдЦрдХ рдХреЛ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╣рдо рдЬрд╣рд╛рдЬ:

  • рд▓реЗрдЦреЛрдВ рдХреА рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП 1 рдЕрдиреБрд░реЛрдз;
  • рдкреНрд░рддреНрдпреЗрдХ рд▓реЗрдЦ рдХреЗ рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП 10 рдЕрдиреБрд░реЛрдзред

рдХреБрд▓: рдПрдХ рдЫреЛрдЯреА рд╕реВрдЪреА рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП 11 рдХреНрд╡реЗрд░реАред

рд▓рд┐рдВрдХ рдЬреЛрдбрд╝реЗрдВ


рдмреИрдХрдПрдВрдб рдкрд░, рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╕рднреА рдУрдЖрд░рдПрдо рдореЗрдВ рд╣рд▓ рд╣реЛ рдЧрдИ рд╣реИ - рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕ рдХрдиреЗрдХреНрд╢рди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╛рдж рд░рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдЗрди рдХрдиреЗрдХреНрд╢рдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдкрд░ рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:

01. GET /articles? include =author
02. Content-Type: application/json

рдЖрдк рдПрдХ рд╡рд┐рд╢реЗрд╖ GET рдкреИрд░рд╛рдореАрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ (рдЬреИрд╕рд╛ рдХрд┐ рдмреИрдХрдПрдВрдб рдкрд░ рд╣реИ), рдпрд╣ рдХрд╣рддреЗ рд╣реБрдП рдХрд┐ рд╣рдореЗрдВ рдХрд┐рди рд▓реЗрдЦреЛрдВ рдХреЗ рд╕рд╛рде рд▓реЛрдб рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдо рд▓реЗрдЦ рдЕрдкрд▓реЛрдб рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рддреБрд░рдВрдд рд▓реЗрдЦ рдХреЗ рд╕рд╛рде рд▓реЗрдЦрдХ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЬрд╡рд╛рдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

01. /1.1 200
02. { "data": [{
03. { attributes: { "id": 1, "title": "JSON API" },
04. { relationships: {
05. "author": { "id": 1, "name": "Avdeev" } }
06. }, ...
07. }]}


рд╕реНрд╡рдпрдВ рдХреЗ рд▓реЗрдЦ рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЛ рдбреЗрдЯрд╛ рдореЗрдВ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдкреНрд░рдореБрдЦ рд░рд┐рд╢реНрддреЛрдВ рдХреЛ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рдерд╛ред рд╣рдордиреЗ рдЗрд╕ рдХреБрдВрдЬреА рдореЗрдВ рд╕рднреА рдХрдиреЗрдХреНрд╢рди рд▓рдЧрд╛рдПред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЗ рд╕рд╛рде, рд╣рдореЗрдВ рдкрд╣рд▓реЗ 11 рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рд╣реБрдП рд╕рднреА рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рд╣реБрдПред рдпрд╣ рдПрдХ рд╢рд╛рдВрдд рдЬреАрд╡рди рд╣реИрдХ рд╣реИ рдЬреЛ рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдкрд░ рдПрди + 1 рдХреЗ рд╕рд╛рде рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИред

рдбреЗрдЯрд╛ рдХреЗ рджреЛрд╣рд░рд╛рд╡ рдХреА рд╕рдорд╕реНрдпрд╛


рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдк рд▓реЗрдЦрдХ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реБрдП 10 рд▓реЗрдЦ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рд╕рднреА рд▓реЗрдЦреЛрдВ рдореЗрдВ рдПрдХ рд▓реЗрдЦрдХ рд╣реИ, рд▓реЗрдХрд┐рди рд▓реЗрдЦрдХ рдХреЗ рдкрд╛рд╕ рдСрдмреНрдЬреЗрдХреНрдЯ рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдмрд╣реБрдд рд▓рдВрдмрд╛ рдЕрдВрддрд┐рдо рдирд╛рдо, рдЬреЛ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рд▓реЗрддрд╛ рд╣реИ)ред рдПрдХ рд▓реЗрдЦрдХ рдХреЛ 10 рдмрд╛рд░ рдЙрддреНрддрд░ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЙрддреНрддрд░ рдореЗрдВ рдПрдХ рд╣реА рд▓реЗрдЦрдХ рдХреЗ 10 рд╕рдорд╛рд╡реЗрд╢ 10 рдПрдордмреА рд▓реЗрдВрдЧреЗред

рдЪреВрдВрдХрд┐ рд╕рднреА рдСрдмреНрдЬреЗрдХреНрдЯ рд╕рдорд╛рди рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдЬреЛ рдПрдХ рд▓реЗрдЦрдХ рдХреЛ 10 рдмрд╛рд░ (10 рдПрдордмреА) рд╢рд╛рдорд┐рд▓ рд╣реИ, рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХреА рдорджрдж рд╕реЗ рд╣рд▓ рдХреА рдЬрд╛рддреА рд╣реИ, рдЬреЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИред рд╕рд╛рдордиреЗ рдХреЗ рдЫреЛрд░ рдкрд░, рдЖрдк рдПрдкреАрдЖрдИ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕рд╛рдорд╛рдиреНрдпреАрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реИред

01. /1.1 200
02. { "data": [{
03. "id": "1тА│, "type": "article",
04. "attributes": { "title": "JSON API" },
05. "relationships": { ... }
06. "author": { "id": 1, "type": "people" } }
07. }, ... ]
08. }


рд╣рдо рд╕рднреА рд╕рдВрд╕реНрдерд╛рдУрдВ рдХреЛ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рд╕реЗ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВ (рдпрд╣ рдПрдХ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдкреНрд░рдХрд╛рд░, рдПрдХ рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдХрд╛рд░ рд╣реИ)ред рд░реЙрдп рдлреАрд▓реНрдбрд┐рдВрдЧ рдиреЗ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдкреЗрд╢ рдХреА, рдЕрд░реНрдерд╛рддреН, рдЙрдиреНрд╣реЛрдВрдиреЗ рд▓реЗрдЦреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд┐рдпрд╛ - рдПрдХ "рд▓реЗрдЦ" рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ред рд░рд┐рд╢реНрддреЛрдВ рдореЗрдВ, рд╣рдо рдЯрд╛рдЗрдк рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдХрдбрд╝реА рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЕрд░реНрдерд╛рдд, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рд▓реЛрдЧреЛрдВ рдХреЗ рд╕рдВрд╕рд╛рдзрди рдХрд╣реАрдВ рдФрд░ рд╣реИрдВред рдФрд░ рд╕рдВрд╕рд╛рдзрди рдореЗрдВ рд╣рдо рдПрдХ рдЕрд▓рдЧ рдХреБрдВрдЬреА рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдбреЗрдЯрд╛ рдХреЗ рд╕рдорд╛рди рд╕реНрддрд░ рдкрд░ рд╣реИред

01. /1.1 200
02. {
03. "data": [ ... ],
04. "included": [{
05. "id": 1, "type": "people",
06. "attributes": { "name": "Avdeev" }
07. }]
08. }


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдПрдХ рд╣реА рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рд╕рднреА рд╕рдВрдмрдВрдзрд┐рдд рдирд┐рдХрд╛рдп рд╢рд╛рдорд┐рд▓ рд╡рд┐рд╢реЗрд╖ рдХреБрдВрдЬреА рдореЗрдВ рдЖрддреЗ рд╣реИрдВред рд╣рдо рдХреЗрд╡рд▓ рд▓рд┐рдВрдХ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдирд┐рдХрд╛рдп рдЦреБрдж рдХреЛ рдЗрд╕рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВред

рдЕрдиреБрд░реЛрдз рдЖрдХрд╛рд░ рдХрдо рд╣реЛ рдЧрдпрд╛ред рдпрд╣ рдПрдХ рдЬреАрд╡рди рд╣реИрдХ рд╣реИ рдЬрд┐рд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╢реБрд░реБрдЖрддреА рдмреИрдХ-рдПрдВрдб рдХреЛ рдирд╣реАрдВ рдкрддрд╛ рд╣реИред рд╡рд╣ рдмрд╛рдж рдореЗрдВ рдкрддрд╛ рд▓рдЧрд╛рдПрдЧрд╛ рдХрд┐ рдХрдм рдЙрд╕реЗ рдПрдкреАрдЖрдИ рдХреЛ рддреЛрдбрд╝рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИред

рд╕рднреА рд╕рдВрд╕рд╛рдзрди рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ


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

GET /articles ?fields[article]=title /1.1

01. /1.1 200 OK
02. { "data": [{
03. "id": "1тА│, "type": "article",
04. "attributes": { "title": " JSON API" },
05. }, ... ]
06. }


рдпрджрд┐ рдЖрдкрдХреЛ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рдХрд╛рд╢рди рдХреА рддрд┐рдерд┐ рднреА, рддреЛ рдЖрдк рдЕрд▓рдЧ рд╕реЗ рдкреНрд░рдХрд╛рд╢рд┐рдд "рдкреНрд░рдХрд╛рд╢рд┐рдд рддрд┐рдерд┐" рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВред рдЬрд╡рд╛рдм рдореЗрдВ, рджреЛ рдлрд╝реАрд▓реНрдб рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдЖрдПрдВрдЧреЗред рдпрд╣ рдПрдХ рд╕рдореНрдореЗрд▓рди рд╣реИ рдЬрд┐рд╕реЗ рдПрдВрдЯреА-рдмрд╛рдЗрдХреЗрдЬрд┐рдВрдЧ рдЯреВрд▓ рдХреЗ рд░реВрдк рдореЗрдВ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рд▓реЗрдЦреЛрдВ рджреНрд╡рд╛рд░рд╛ рдЦреЛрдЬреЗрдВ


рдЕрдХреНрд╕рд░ рд╣рдореЗрдВ рдЦреЛрдЬ рдФрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдиреНрд╡реЗрдВрд╢рди рд╣реИрдВ - рд╡рд┐рд╢реЗрд╖ рдлрд┐рд▓реНрдЯрд░ GET рдкреИрд░рд╛рдореАрдЯрд░:

тЧП GET /articles ?filters[search]=api HTTP/1.1 - рдЦреЛрдЬ;
тЧП GET /articles ?fiIters[from_date]=1538332156 HTTP/1.1 - рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрд┐рдерд┐ рд╕реЗ рд▓реЗрдЦ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВ;
тЧП GET /articles ?filters[is_published]=true HTTP/1.1 - рдбрд╛рдЙрдирд▓реЛрдб рд▓реЗрдЦ рдЬреЛ рдЕрднреА рдкреНрд░рдХрд╛рд╢рд┐рдд рд╣реБрдП рд╣реИрдВ;
тЧП GET /articles ?fiIters[author]=1 HTTP/1.1 - рдкрд╣рд▓реЗ рд▓реЗрдЦрдХ рдХреЗ рд╕рд╛рде рд▓реЗрдЦ рдбрд╛рдЙрдирд▓реЛрдб рдХрд░реЗрдВред

рдЫрдБрдЯрд╛рдИ рд▓реЗрдЦ


тЧП GET /articles ?sort=title /1.1 - рд╢реАрд░реНрд╖рдХ рд╕реЗ;
тЧП GET /articles ?sort=published_at HTTP/1.1 - рдкреНрд░рдХрд╛рд╢рди рдХреА рддрд╛рд░реАрдЦ рд╕реЗ;
тЧП GET /articles ?sort=-published_at HTTP/1.1 - рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди рддрд┐рдерд┐ рджреНрд╡рд╛рд░рд╛;
тЧП GET /articles ?sort=author,-publisbed_at HTTP/1.1 - рдкрд╣рд▓реЗ рд▓реЗрдЦрдХ рджреНрд╡рд╛рд░рд╛, рдлрд┐рд░ рд╡рд┐рдкрд░реАрдд рджрд┐рд╢рд╛ рдореЗрдВ рдкреНрд░рдХрд╛рд╢рди рддрд┐рдерд┐ рд╕реЗ, рдпрджрд┐ рд▓реЗрдЦ рдПрдХ рд╣реА рд▓реЗрдЦрдХ рдХреЗ рд╣реИрдВред

URL рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ


рд╕рдорд╛рдзрд╛рди: рд╣рд╛рдЗрдкрд░рдореАрдбрд┐рдпрд╛, рдЬрд┐рд╕рдХрд╛ рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдерд╛, рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрджрд┐ рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╕реНрддреБ (рд╕рдВрд╕рд╛рдзрди) рд╕реНрд╡-рд╡рд░реНрдгрди рд╣реЛ, рддреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рд╣рд╛рдЗрдкрд░рдореАрдбрд┐рдпрд╛ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╕рдордЭ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╕рд░реНрд╡рд░ рдЧреНрд░рд╛рд╣рдХ рдХреЗ рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдЖрдк рд▓реЗрдЦреЛрдВ рдХреА рд╕реВрдЪреА рдореЗрдВ рд▓рд┐рдВрдХ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдЦ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рд▓рд┐рдВрдХ рд▓рд┐рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ред :

01. GET /articles /1.1
02. {
03. "data": [{
04. ...
05. "links": { "self": "http://localhost/articles/1"
},
06. "relationships": { ... }
07. }],
08. "links": { "self": " http://localhost/articles " }
09. }

рдпрд╛ рд╕рдВрдмрдВрдзрд┐рдд, рдЕрдЧрд░ рд╣рдо рдЧреНрд░рд╛рд╣рдХ рдХреЛ рдЗрд╕ рд▓реЗрдЦ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдЕрдкрд▓реЛрдб рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ:

01. ...
02. "relationships": {
03. "comments": {
04. "links": {
05. "self": "http://localhost/articles/l/relationships/comments
",
06. "related": " http://localhost/articles/l/comments "
07. }
08. }
09. }

рдХреНрд▓рд╛рдЗрдВрдЯ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рд▓рд┐рдВрдХ рд╣реИ, рдЗрд╕рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░рддрд╛ рд╣реИ, рдПрдХ рдЯрд┐рдкреНрдкрдгреА рд▓реЛрдб рдХрд░рддрд╛ рд╣реИред рдЕрдЧрд░ рдХреЛрдИ рд▓рд┐рдВрдХ рдирд╣реАрдВ рд╣реИ, рддреЛ рдХреЛрдИ рдЯрд┐рдкреНрдкрдгреА рдирд╣реАрдВ рд╣реИред рдпрд╣ рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ, рд▓реЗрдХрд┐рди рдРрд╕рд╛ рдмрд╣реБрдд рдХрдо рд▓реЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рд░реАрд╕реНрдЯ рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рд╕рд╛рде рдХреНрд╖реЗрддреНрд░рд░рдХреНрд╖рдг рдЖрдпрд╛, рд▓реЗрдХрд┐рди рдЙрди рд╕рднреА рдиреЗ рд╣рдорд╛рд░реЗ рдЙрджреНрдпреЛрдЧ рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдирд╣реАрдВ рдХрд┐рдпрд╛ред рд╣рдо рдореБрдЦреНрдп рд░реВрдк рд╕реЗ рджреЛ рдпрд╛ рддреАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред

2013 рдореЗрдВ, рд╕рднреА рдЬреАрд╡рди рд╣реИрдХ рдЬреЛ рдореИрдВрдиреЗ рдЖрдкрдХреЛ рдмрддрд╛рдпрд╛, рд╕реНрдЯреАрд╡ рдХреНрд▓реЗрдмрдирд┐рдХ рдиреЗ JSON API рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдореЗрдВ рд╕рдВрдпреБрдХреНрдд рдХрд┐рдпрд╛ рдФрд░ JSON рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рдПрдХ рдирдП рдореАрдбрд┐рдпрд╛ рдкреНрд░рдХрд╛рд░ рдХреЗ рд░реВрдк рдореЗрдВ рдкрдВрдЬреАрдХреГрдд рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП рд╣рдорд╛рд░реЗ рдЬреВрдирд┐рдпрд░ рдмреИрдХрдПрдВрдб рдбреЗрд╡рд▓рдкрд░, рдзреАрд░реЗ-рдзреАрд░реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реЗ рд╣реИрдВ, JSON рдПрдкреАрдЖрдИ рдореЗрдВ рдЖрдПред

JSON рдПрдкреАрдЖрдИ


рд╕рдм рдХреБрдЫ http://jsonapi.org/implementations/ рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рд╡рд░реНрдгрд┐рдд рд╣реИ: 32 рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдХреЗ рд▓рд┐рдП 170 рд╡рд┐рднрд┐рдиреНрди рд╡рд┐рд╢рд┐рд╖реНрдЯрддрд╛рдУрдВ рдХреЗ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ - рдФрд░ рдпреЗ рдХреЗрд╡рд▓ рдХреИрдЯрд▓реЙрдЧ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рддреЗ рд╣реИрдВред рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ, рдкрд╛рд░реНрд╕рд░реЛрдВ, рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХреЛрдВ рдЖрджрд┐ рдХреЛ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦрд╛ рдЬрд╛ рдЪреБрдХрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рдпрд╣ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдЦреБрд▓рд╛ рд╕реНрд░реЛрдд рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рд░ рдХреЛрдИ рдЗрд╕рдореЗрдВ рдирд┐рд╡реЗрд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред рдореИрдВрдиреЗ, рдЕрдиреНрдп рдмрд╛рддреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЦреБрдж рдХреБрдЫ рд▓рд┐рдЦрд╛ред рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдРрд╕реЗ рдХрдИ рд▓реЛрдЧ рд╣реИрдВред рдЖрдк рдЦреБрдж рдЗрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдЬреБрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред

JSON рдПрдкреАрдЖрдИ рдкреЗрд╢реЗрд╡рд░реЛрдВ


JSON рдПрдкреАрдЖрдИ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрдИ рд╕рдорд╕реНрдпрд╛рдУрдВ рдХрд╛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ - рд╕рднреА рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдордЭреМрддрд╛ ред рдЪреВрдВрдХрд┐ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдордЭреМрддрд╛ рд╣реИ, рд╣рдо рдЯреАрдо рдХреЗ рднреАрддрд░ рдмрд╣рд╕ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ - рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб рдХрд╛ рджрд╕реНрддрд╛рд╡реЗрдЬреАрдХрд░рдг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рд╛рдЗрдХрд┐рд▓ рдХрд╛ рд╢реЗрдб рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдФрд░ рдЗрд╕реЗ рдХреИрд╕реЗ рдкреЗрдВрдЯ рдХрд░рдирд╛ рд╣реИ, рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣рдорд╛рд░рд╛ рдПрдХ рд╕рдордЭреМрддрд╛ рд╣реИред

рдЕрдм, рдЬрдм рдбреЗрд╡рд▓рдкрд░ рдХреБрдЫ рдЧрд▓рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕реЗ рджреЗрдЦрддрд╛ рд╣реВрдВ, рддреЛ рдореИрдВ рдЪрд░реНрдЪрд╛ рд╢реБрд░реВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдХрд╣рддрд╛ рд╣реВрдВ: "JIV API рджреНрд╡рд╛рд░рд╛ рдирд╣реАрдВ!" рдФрд░ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рдЬрдЧрд╣ рджрд┐рдЦрд╛рдУред рд╡реЗ рдореБрдЭреЗ рдХрдВрдкрдиреА рд╕реЗ рдирдлрд░рдд рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдзреАрд░реЗ-рдзреАрд░реЗ рдЗрд╕рдХреА рдЖрджрдд рд╣реЛ рдЧрдИ рд╣реИ, рдФрд░ рд╣рд░ рдХреЛрдИ JSON рдПрдкреАрдЖрдИ рдХреЛ рдкрд╕рдВрдж рдХрд░рдиреЗ рд▓рдЧрд╛ рд╣реИред рд╣рдо рдЗрд╕ рд╡рд┐рдирд┐рд░реНрджреЗрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдирдИ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрд╡рд╛рдПрдВ рдмрдирд╛рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рддрд╛рд░реАрдЦ рдХреА рдХреБрдВрдЬреА рд╣реИ, рд╣рдо рдореЗрдЯрд╛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рддреИрдпрд╛рд░ рд╣реИрдВ, рдЪрд╛рдмрд┐рдпрд╛рдБ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдЖрд░рдХреНрд╖рд┐рдд GET рдкреИрд░рд╛рдореАрдЯрд░ рдлрд╝рд┐рд▓реНрдЯрд░ рд╣реИред рд╣рдо рдпрд╣ рдирд╣реАрдВ рддрд░реНрдХ рджреЗрддреЗ рд╣реИрдВ рдХрд┐ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЛ рдХреНрдпрд╛ рдХрд╣рд╛ рдЬрд╛рдП - рд╣рдо рдЗрд╕ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдпрд╣ рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ URL рдХреИрд╕реЗ рдмрдирд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЪреВрдВрдХрд┐ рд╣рдо рдмрд╣рд╕ рдирд╣реАрдВ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдХрд╛рд░реНрдп рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╡рд┐рдХрд╛рд╕ рдЙрддреНрдкрд╛рджрдХрддрд╛ рдЕрдзрд┐рдХ рд╣реИ ред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрдгрд┐рдд рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣реИрдВ, рдбреЗрд╡рд▓рдкрд░ рдиреЗ рдмреИрдХрдПрдВрдб рдкрдврд╝рд╛, рдПрдкреАрдЖрдИ рдмрдирд╛рдпрд╛, рд╣рдордиреЗ рдЗрд╕реЗ рдЦрд░рд╛рдм рдХрд░ рджрд┐рдпрд╛ - рдЧреНрд░рд╛рд╣рдХ рдЦреБрд╢ рд╣реИред

рд▓реЛрдХрдкреНрд░рд┐рдп рд╕рдорд╕реНрдпрд╛рдУрдВ рдХреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд╣рд▓ рдХрд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ , рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдВрдХреБрд░рдг рдХреЗ рд╕рд╛рдеред рдХрд▓реНрдкрдирд╛ рдореЗрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕рдВрдХреЗрдд рд╣реИрдВред

рдЪреВрдВрдХрд┐ рдпрд╣ JSON рд╣реИ (рдЗрд╕ рдкреНрд░рд╛рд░реВрдк рдХреЗ рд▓рд┐рдП рдбрдЧрд▓рд╕ рдХреНрд░реЙрдХрдлреЛрд░реНрдб рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж), рдпрд╣ XML рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рд╣реИ, рдЗрд╕реЗ рдкрдврд╝рдирд╛ рдФрд░ рд╕рдордЭрдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ ред

рдпрд╣ рддрдереНрдп рдХрд┐ рдпрд╣ рдУрдкрди рд╕реЛрд░реНрд╕ рд╣реИ, рдкреНрд▓рд╕ рдФрд░ рдорд╛рдЗрдирд╕ рджреЛрдиреЛрдВ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдУрдкрди рд╕реЛрд░реНрд╕ рдмрд╣реБрдд рдкрд╕рдВрдж рд╣реИред

рд╡рд┐рдкрдХреНрд╖ JSON рдПрдкреАрдЖрдИ


рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдбрд╝рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ (рддрд┐рдерд┐, рдЧреБрдг, рд╢рд╛рдорд┐рд▓, рдЖрджрд┐) - рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдХреЛ рдЬрд╡рд╛рдмреЛрдВ рдХреЛ рдкрд╛рд░реНрд╕ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ: рд╕рд░рдгрд┐рдпреЛрдВ рдкрд░ рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛ, рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЗ рдЪрд╛рд░реЛрдВ рдУрд░ рдЪрд▓рдирд╛ рдФрд░ рдкрддрд╛ рдХрд░реЗрдВ рдХрд┐ рдХрд╛рдо рдХреИрд╕реЗ рдХрдо рдХрд░реЗрдВред рд╕рднреА рдиреМрд╕рд┐рдЦрд┐рдП рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЗрди рдЬрдЯрд┐рд▓ рдЪреАрдЬреЛрдВ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХреЛрдВ / deserializers рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИрдВ, рдЖрдк рдЙрдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдпрд╣ рдХреЗрд╡рд▓ рдбреЗрдЯрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдСрдмреНрдЬреЗрдХреНрдЯ рдмрдбрд╝реЗ рд╣реИрдВред

рдФрд░ рдмреИрдХреЗрдВрдб рдореЗрдВ рджрд░реНрдж рд╣реЛрддрд╛ рд╣реИ:

  • рдШреЛрдВрд╕рд▓рд╛ рдирд┐рдпрдВрддреНрд░рдг - рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдмрд╣реБрдд рджреВрд░ рдЪрдврд╝рд╛рдИ;
  • рдбреЗрдЯрд╛рдмреЗрд╕ рдкреНрд░рд╢реНрдиреЛрдВ рдХреА рдЬрдЯрд┐рд▓рддрд╛ - рд╡реЗ рдХрднреА-рдХрднреА рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдирд┐рд░реНрдорд┐рдд рд╣реЛрддреЗ рд╣реИрдВ, рдФрд░ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ;
  • рд╕реБрд░рдХреНрд╖рд╛ - рдЖрдк рдЬрдВрдЧрд▓ рдореЗрдВ рдЪрдврд╝ рд╕рдХрддреЗ рд╣реИрдВ, рдЦрд╛рд╕рдХрд░ рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реЗ рдЬреБрдбрд╝рддреЗ рд╣реИрдВ;
  • рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдкрдврд╝рдирд╛ рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рд╡рд╣ рдЕрдВрдЧреНрд░реЗрдЬреА рдореЗрдВ рд╣реИ, рдФрд░ рдпрд╣ рдХреБрдЫ рджреВрд░ рдбрд░ рдЧрдпрд╛, рд▓реЗрдХрд┐рди рдзреАрд░реЗ-рдзреАрд░реЗ рд╕рднреА рдХреЛ рдЗрд╕рдХреА рдЖрджрдд рд╣реЛ рдЧрдИ;
  • рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЛ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ - рдпрд╣ рдПрдХ рдУрдкрди рд╕реЛрд░реНрд╕ рд╕рдорд╕реНрдпрд╛ рд╣реИред

рдиреБрдХрд╕рд╛рди JSON рдПрдкреАрдЖрдИ


рдХрдЯреНрдЯрд░ рд╕рд╛ред

рдореБрджреНрджреЗ рдореЗрдВ рд░рд┐рд╢реНрддреЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ рд╕реАрдорд┐рдд рдирд╣реАрдВ рд╣реИред рдпрджрд┐ рд╣рдо рд╢рд╛рдорд┐рд▓ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдЦреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдиреНрд╣реЗрдВ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рддреЛ рдЬрд╡рд╛рдм рдореЗрдВ рд╣рдо рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд╕рднреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВрдЧреЗред 10,000 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рд╣реИрдВ - рд╕рднреА 10,000 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдВ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ:

GET /articles/1?include=comments /1.1

01. ...
02. "relationships": {
03. "comments": {
04. "data": [0 ... тИЮ]
05. }
06. }


рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ 5 рдПрдордмреА рд╣рдорд╛рд░реЗ рдЬрд╡рд╛рдм рдореЗрдВ рдЖрдпрд╛: "рдпрд╣ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ - рдЕрдиреБрд░реЛрдз рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рд╕реБрдзрд╛рд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ:

GET /comments? filters[article]=1& page[size]=30 HTTP/1.1

01. {
02. "data": [0 ... 29]
03. }


рд╣рдо рд▓реЗрдЦ рджреНрд╡рд╛рд░рд╛ рдлрд╝рд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рддреЗ рд╣реИрдВ, рдХрд╣рддреЗ рд╣реИрдВ: "30 рдЯреБрдХрдбрд╝реЗ, рдХреГрдкрдпрд╛" рдФрд░ 30 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВред рдпрд╣ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рд╣реИред

рд╡рд╣реА рдЪреАрдЬреЗрдВ рдЕрд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рддреИрдпрд╛рд░ рдХреА рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ :

тЧП GET /articles/1 ?include=comments HTTP/1.1 - рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ;
тЧП GET /articles/1/comments HTTP/1.1 - рд▓реЗрдЦ рдкрд░ рдЯрд┐рдкреНрдкрдгреА рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВ;
тЧП GET /comments ?filters[article]=1 HTTP/1.1 - рд▓реЗрдЦ рджреНрд╡рд╛рд░рд╛ рдПрдХ рдлрд┐рд▓реНрдЯрд░ рдХреЗ рд╕рд╛рде рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред

рдпрд╣ рдПрдХ рдФрд░ рдПрдХ рд╣реА рд╣реИ - рдПрдХ рд╣реА рдбреЗрдЯрд╛, рдЬреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рддрд░реАрдХреЛрдВ рд╕реЗ рдкреНрд░рд╛рдкреНрдд рд╣реЛрддрд╛ рд╣реИ, рдХреБрдЫ рдЕрд╕реНрдкрд╖реНрдЯрддрд╛ рд╣реИред рдпрд╣ рдиреБрдХрд╕рд╛рди рддреБрд░рдВрдд рдирд╣реАрдВ рджрд┐рдЦ рд░рд╣рд╛ рд╣реИред

рдПрдХ рд╕реЗ рдХрдИ рдмрд╣реБрдкрддреНрдиреА рд╕рдВрдмрдВрдз REST рдореЗрдВ рдмрд╣реБрдд рдЬрд▓реНрджреА рд░реЗрдВрдЧрддреЗ рд╣реИрдВред

01. GET /comments?include=commentable /1.1
02.
03. ...
04. "relationships": {
05. "commentable" : {
06. "data": { "type": "article", "id": "1тА│ }
07. }
08. }


рдмреИрдХрдПрдВрдб рдкрд░ рдПрдХ рдЙрд▓реНрд▓реЗрдЦрдиреАрдп рдкреЙрд▓реАрдореЙрд░реНрдлрд┐рдХ рдХрдиреЗрдХреНрд╢рди рд╣реИ - рдпрд╣ рдЖрд░рдИрдПрд╕рдЯреАрдЯреА рдореЗрдВ рдХреНрд░реЙрд▓ рдХрд░рддрд╛ рд╣реИред рддреЛ рдпрд╣ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдпрд╣ рдкреНрд░рдЪреНрдЫрдиреНрди рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рдЖрдк рдЗрд╕реЗ JSON API рдореЗрдВ рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ - рдпрд╣ рд╕рд╛рдордиреЗ рдЖ рдЬрд╛рдПрдЧрд╛ред

рдЙрдиреНрдирдд рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рд╕рд╛рде рдХрдИ-рд╕реЗ-рдХрдИ рд╕рдВрдмрдВрдз рдЬрдЯрд┐рд▓ ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕рднреА рдХрдиреЗрдХреНрдЯрд┐рдВрдЧ рдЯреЗрдмрд▓ рдмрд╛рд╣рд░ рдЖрддреЗ рд╣реИрдВ:

01. GET /users?include =users_comments /1.1
02.
03. ...
04. "relationships": {
05. "users_comments": {
06. "data": [{ "type": "users_comments", "id": "1тА│ }, ...]
07. },
08. }


рдЕрдХрдбрд╝


рд╕реНрд╡реИрдЧрд░ рдПрдХ рдСрдирд▓рд╛рдЗрди рдкреНрд░рд▓реЗрдЦрди рд▓реЗрдЦрди рдЙрдкрдХрд░рдг рд╣реИред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдмреИрдХрдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рдХреЛ рдЕрдкрдиреЗ рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рдЙрдиреНрд╣реЛрдВрдиреЗ рдЗрд╕реЗ рд▓рд┐рдЦрд╛ред рдпрд╣ рдЖрд╕рд╛рди рд╣реИ рдЕрдЧрд░ рдПрдкреАрдЖрдИ рд╕рд░рд▓ рд╣реИред рдпрджрд┐ рдпрд╣ JSON рдПрдкреАрдЖрдИ рд╣реИ, рддреЛ рд╕реНрд╡реИрдЧрд░ рдЗрддрдиреА рдЖрд╕рд╛рдиреА рд╕реЗ рдирд╣реАрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

рдЙрджрд╛рд╣рд░рдг: рд╕реНрд╡реИрдЧрд░ рдкрд╛рд▓рддреВ рдЬрд╛рдирд╡рд░ рдХреА рджреБрдХрд╛рдиред рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдзрд┐ рдХреЛ рдЦреЛрд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдФрд░ рдЙрджрд╛рд╣рд░рдг рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВред



рдпрд╣ рдПрдХ рдкрд╛рд▓рддреВ рдореЙрдбрд▓ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИред рдпрд╣рд╛рдВ рдПрдХ рд╢рд╛рдВрдд рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рд╣реИ, рд╕рдм рдХреБрдЫ рдкрдврд╝рдирд╛ рдЖрд╕рд╛рди рд╣реИред



рдФрд░ рдЗрд╕ рддрд░рд╣ JSON API рдореЙрдбрд▓ рдХрд╛ рдирд┐рд░реНрдорд╛рдг рдХреИрд╕рд╛ рджрд┐рдЦрддрд╛ рд╣реИ:



рдпрд╣ рдЗрддрдирд╛ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИред рд╣рдореЗрдВ рдбреЗрдЯрд╛ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд░рд┐рд╢реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдХреБрдЫ рдбреЗрдЯрд╛ рдореЗрдВ, рдЗрд╕рдореЗрдВ 5 рдкреНрд░рдХрд╛рд░ рдХреЗ рдореЙрдбрд▓ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЖрджрд┐ред рдЖрдк рд╕реНрд╡реИрдЧрд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдУрдкрди рдПрдкреАрдЖрдИ рдПрдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА рдЪреАрдЬ рд╣реИ, рд▓реЗрдХрд┐рди рдЬрдЯрд┐рд▓ рд╣реИред

рд╡рд┐рдХрд▓реНрдк


рдПрдХ рдУрдбреЗрдЯрд╛ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рд╣реИ, рдЬреЛ рдереЛрдбрд╝реА рджреЗрд░ рдмрд╛рдж рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛ - 2015 рдореЗрдВред рдпрд╣ "REST рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ", рдЬреИрд╕рд╛ рдХрд┐ рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рд╡реЗрдмрд╕рд╛рдЗрдЯ рдиреЗ рдЖрд╢реНрд╡рд╛рд╕рди рджрд┐рдпрд╛ рд╣реИред рдпрд╣ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

01. GET http://services.odata.org/v4/TripRW/People HTTP/1.1 - GET рдЕрдиреБрд░реЛрдз;
02. OData-Version: 4.0 - рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рд╡рд┐рд╢реЗрд╖ рд╣реЗрдбрд░;
03. OData-MaxVersion: 4.0 - рджреВрд╕рд░рд╛ рд╡рд┐рд╢реЗрд╖ рд╕рдВрд╕реНрдХрд░рдг рд╣реИрдбрд░

рдЬрд╡рд╛рдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:

01. HTTP/1.1 200 OK
02. Content-Type: application/json; odata.metadata=minimal
03. OData-Version: 4.0
04. {
05. '@odata.context': 'http://services.odata.org/V4/
06. '@odata.nextLink' : 'http://services.odata.org/V4/
07. 'value': [{
08. '@odata.etag': 1W/108D1D5BD423E51581тА▓,
09. 'UserName': 'russellwhyte',
10. ...

рдпрд╣рд╛рдБ рд╡рд┐рд╕реНрддрд╛рд░рд┐рдд рдЕрдиреБрдкреНрд░рдпреЛрдЧ / json рдФрд░ рдСрдмреНрдЬреЗрдХреНрдЯ рд╣реИред

рд╣рдордиреЗ рдУрдбрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдЪреВрдВрдХрд┐ рдпрд╣ JSON рдПрдкреАрдЖрдИ рдХреЗ рд╕рдорд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдВрдХреНрд╖рд┐рдкреНрдд рдирд╣реАрдВ рд╣реИред рдмрд╣реБрдд рдмрдбрд╝реА рд╡рд╕реНрддреБрдПрдВ рд╣реИрдВ рдФрд░ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рдмреБрд░рд╛ рд╣реИред рдУрдбрдЯрд╛ рдУрдкрди рд╕реЛрд░реНрд╕ рдореЗрдВ рднреА рд╕рд╛рдордиреЗ рдЖрдпрд╛, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред

GraphQL рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?


рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ, рдЬрдм рд╣рдо рдПрдХ рдирдП рдПрдкреАрдЖрдИ рдкреНрд░рд╛рд░реВрдк рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рдереЗ, рд╣рдо рдЗрд╕ рдкреНрд░рдЪрд╛рд░ рдореЗрдВ рднрд╛рдЧ рдЧрдПред

тЧП рдЙрдЪреНрдЪ рдкреНрд░рд╡реЗрд╢ рд╕реАрдорд╛ред

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

тЧП рдмрдбрд╝реЗ рдзрдорд╛рдХреЗ рдХрд╛ рдЕрд╕рд░ред

рдпрджрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдореЗрдВ рдХреЛрдИ рдПрдкреАрдЖрдИ рдирд╣реАрдВ рдерд╛, рдФрд░ рд╣рдордиреЗ рдЧреНрд░рд╛рдлрд╝рдХрд▓рд╛рдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╢реБрд░реВ рдХрд░ рджрд┐рдпрд╛, рддреЛ рдПрдХ рдорд╣реАрдиреЗ рдХреЗ рдмрд╛рдж рд╣рдордиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдпрд╛ рдХрд┐ рдпрд╣ рд╣рдореЗрдВ рд╕реВрдЯ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рдмрд╣реБрдд рджреЗрд░ рд╣реЛ рдЬрд╛рдПрдЧреАред рдмреИрд╕рд╛рдЦреА рд▓рд┐рдЦрдиреА рд╣реИред рдЖрдк JSON API рдпрд╛ OData рдХреЗ рд╕рд╛рде рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ - рд╕рдмрд╕реЗ рд╕рд░рд▓ Restful, рдЙрддреНрддрд░реЛрддреНрддрд░ рд╕реБрдзрд╛рд░, JSON API рдореЗрдВ рдмрджрд▓ рдЬрд╛рддрд╛ рд╣реИред

тЧП рдмреИрдХрдПрдВрдб рдкрд░ рдирд░рдХред

рдЧреНрд░рд╛рдлрдХреЙрдХ рдмреИрдХрдПрдВрдб рдкрд░ рдирд░рдХ рдХреЛ рдмреБрд▓рд╛рддрд╛ рд╣реИ - рдПрдХ рдкрд░ рдПрдХ, рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд▓рд╛рдЧреВ JSON API рдХреА рддрд░рд╣, рдХреНрдпреЛрдВрдХрд┐ рдЧреНрд░рд╛рдлрд╝рдХреЙрд▓ рдХреЛ рдкреНрд░рд╢реНрдиреЛрдВ рдкрд░ рдкреВрд░реНрдг рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╛рдкреНрдд рд╣реИ, рдФрд░ рдпрд╣ рдПрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА:

  • рдШреЛрдВрд╕рд▓рд╛ рдирд┐рдпрдВрддреНрд░рдг;
  • рдкреНрд░рддреНрдпрд╛рд╡рд░реНрддрди;
  • рдЖрд╡реГрддреНрддрд┐ рд╕реАрдорд╛;
  • рдЕрднрд┐рдЧрдо рдирд┐рдпрдВрддреНрд░рдгред

рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп


рдореИрдВ рдмрд╛рдЗрдХ рд╢реЗрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣рд╕ рдХрд░рдирд╛ рдмрдВрдж рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реВрдВ, рдФрд░ рдПрдВрдЯреА-рдмрд╛рдЗрдХреЗрдЬрд┐рдВрдЧ рдЯреВрд▓ рдХреЛ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рд▓реЗрддрд╛ рд╣реВрдВ рдФрд░ рдПрдХ рдЕрдЪреНрдЫреЗ рд╕реНрдкреЗрд╕рд┐рдлрд┐рдХреЗрд╢рди рд╡рд╛рд▓рд╛ рдПрдкреАрдЖрдИ рдмрдирд╛рддрд╛ рд╣реВрдВред

рд╕рд╛рдЗрдХрд┐рд▓ рд╢реЗрдб рдХреА рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдкрдирд╛ рдорд╛рдирдХ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдЗрди рд▓рд┐рдВрдХ рдХреЛ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ:

тЧП http://jsonapi.org
тЧП http://www.odata.org
тЧП https://graphgl.org
тЧП http://xmlrpc.scripting.com
тЧП https://www.jsonrpc.org

: alexey-avdeev.com github .

, Frontend Conf , 27 28 ++ . , .

? ? ? , ? !

, , , , .

Source: https://habr.com/ru/post/hi433322/


All Articles