REST API рдлреНрд░рдВрдЯрдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк рдХрд░ рд░рд╣рд╛ рд╣реИ

рдЖрдЬ, рдмреНрд░рд╛рдЙрдЬрд╝рд░ рдФрд░ рд╕рд░реНрд╡рд░ рдХреА рдкрд░рд╕реНрдкрд░ рдХреНрд░рд┐рдпрд╛ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╡реНрдпрд╛рдкрдХ рд░реВрдк рд╕реЗ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддрд░реАрдХреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреИрд╕реЗ рдХрд┐ рдУрдкрдирдПрдкреАрдЖрдИ рдФрд░ рдЧреНрд░рд╛рдлрдХреНрдпреВрдПрд▓ред

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



рдпреЗ рдЙрдкрдХрд░рдг рд╣рдорд╛рд░реА рдорджрдж рдХрд░рддреЗ рд╣реИрдВ:

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

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

рдпрджрд┐ рдХрдорд╛рдВрдб рдбреЗрдЯрд╛ рдЙрди рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдореЗрдВ рдЧрд▓рддреА рдХрд░рддрд╛ рд╣реИ рдЬреЛ REST API рд╕реНрд╡реАрдХрд╛рд░ / рдЖрдкреВрд░реНрддрд┐ рдХрд░рддрд╛ рд╣реИ рддреЛ рдлреНрд░рдВрдЯрдПрдВрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред

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

рд╡реИрдзрд╛рдирд┐рдХ рд░реВрдк рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдП рдЧрдП рдПрдкреАрдЖрдИ рдХреЗ рд╕рднреА рдЙрдкрд░реЛрдХреНрдд рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдХ рдХреЛрдб рдЬрдирд░реЗрдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЬреЛ рдУрдкрдирдПрдкреАрдЖрдИ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЯрд╛рдЗрдк рд╡рд┐рд╡рд░рдг рдлрд╛рдЗрд▓реЗрдВ рдЙрддреНрдкрдиреНрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдпреЗ * .d.ts рдлрд╛рдЗрд▓реЗрдВ рд╣реИрдВред

рд╣рдорд╛рд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ microservice рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдФрд░ рдкреВрд░реЗ рдмреИрдХрдПрдВрдб рдХреЛ .NET рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдордиреЗ рдлреНрд░рдВрдЯрд╡рд╛рд░реНрдб / рдмреИрдХрдПрдВрдб рдХреЗ рд▓рд┐рдП рдПрдкреАрдЖрдИ рдХреНрд▓рд╛рдЗрдВрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NSwag рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ред рдпрд╣ рдЯреВрд▓ рдЖрдкрдХреЛ OpenAPI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬреЗрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ, рдЬреЛ рддрдм рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░


рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдХреЛрдб рдЬрдирд░реЗрд╢рди рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдХрдИ рдЪрд░рдг рд╣реЛрддреЗ рд╣реИрдВ:

  • OpenAPI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЬрдирд░реЗрд╢рди
  • OpenAPI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЛрдб рдмрдирд╛рдирд╛

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдмреИрдХрдПрдВрдб рдХреЛ .Net рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдореБрдЦреНрдп C # рд╡рд┐рдХрд╛рд╕ рднрд╛рд╖рд╛ рдЯреВрд▓ рдХреА рдкрд╕рдВрдж рдХреЗ рдХрд╛рд░рдг рд╣реИред рд╣рдо OpenAPI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдФрд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NSwag рдирд╛рдордХ рдПрдХ рд╣реА рдЯреВрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред


рдмрд╛рдХреА рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдХрд╛ рдЪрд┐рддреНрд░ 1 рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░

рдЖрдВрдХрдбрд╝рд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ:

  • рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕ 1 ... рдПрди - рдПрдкреАрдЖрдИ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдорд╛рдЗрдХреНрд░реЛрд╕рд░реНрд╡рд┐рд╕реЗрд╕
  • NSwag - рдПрдХ microservice рдПрдкреАрдЖрдИ рдХреЛрдб рд╕реЗ рдПрдХ OpenAPI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдЙрддреНрдкрдиреНрди (рдПрдХ microservice рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдПрдХ OpenAPI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдХрд░рдг рд╣реИ)
  • NSwag - OpenAPI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реАрдХрд░рдг рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ API рдХреЛрдб рдЬрдирд░реЗрдЯ рдХрд░рдирд╛ (рдРрд╕реЗ рдХрдИ рдЙрдкрдХрд░рдг рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдк рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдЖрдкрдХреА рддрдХрдиреАрдХ рд╕реНрдЯреИрдХ рдХреЛ рдЕрдзрд┐рдХ рд╕реВрдЯ рдХрд░рддрд╛ рд╣реИ)
  • OpenAPI рдбреЙрдХреНрдЯрд░ - OpenAPI рдкреНрд░рд▓реЗрдЦрди рдЙрддреНрдкрдиреНрди
  • рдПрдкреАрдЖрдИ рдХреНрд▓рд╛рдЗрдВрдЯ 1 ... рдПрди - рдПрдкреАрдЖрдИ рдбреЗрдЯрд╛ рдХрд╛ рдЙрдкрднреЛрдЧ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЧреНрд░рд╛рд╣рдХ (рдХрд┐рд╕реА рднреА рднрд╛рд╖рд╛ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдПрдирдПрд╕рдбрдмреНрд▓реНрдпреВ рд╕реА # рдФрд░ рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓рд┐рдП рдЬрдирд░реЗрдЯрд░ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ)
  • рдПрд╕рдкреАрдП 1 ... рдПрди - рдлреНрд░рдВрдЯреЗрдВрдб рдПрдкреНрд▓реАрдХреЗрд╢рди, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд░рд┐рдПрдХреНрдЯ (рдПрдирдПрд╕рдбрдмреНрд▓реНрдпреВ рдПрдВрдЧреБрд▓рд░рдЬреЗрдПрд╕ / рдПрдВрдЧреБрд▓рд░, рд░рд┐рдПрдХреНрдЯ (рднреНрд░реВрдг), JQuery (рд╡рд╛рджрд╛ / рдХреЙрд▓рдмреИрдХ), рдСрд░реЗрд▓рд┐рдпрд╛ рдХреЗ рд▓рд┐рдП рдХреНрд▓рд╛рдЗрдВрдЯ рдЬреЗрдирд░реЗрд╢рди рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИред

рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдХреНрд░рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд╣реИ:

  • рдЙрдкрдпреБрдХреНрдд рдЯреИрдЧ / рд╡рд┐рд╢реЗрд╖рддрд╛ / рдбреЗрдХреЛрд░реЗрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдкреАрдЖрдИ рдирд┐рдпрдВрддреНрд░рдХ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░реЗрдВ рдЬреЛ рдПрдкреАрдЖрдИ рдХреА рднрд╛рд╖рд╛ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ
  • OpenAPI рдПрдкреАрдЖрдИ рдХреЛрдб рдкреНрд░рд▓реЗрдЦрди рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВ
  • OpenAPI рдкреНрд░рд▓реЗрдЦрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреАрдЖрдИ рдХреЛрдб рдмрдирд╛рдПрдВ
  • рдПрдХ рдЧреНрд░рд╛рд╣рдХ рдЙрдкрднреЛрдХреНрддрд╛ рдПрдкреАрдЖрдИ рдЖрд╡реЗрджрди рдореЗрдВ рдЧреНрд░рд╛рд╣рдХ рдПрдкреАрдЖрдИ рдХреЛрдб рдХреЛ рдПрдХреАрдХреГрдд рдХрд░реЗрдВ

рдкреНрд░рд▓реЗрдЦрди


рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдПрдкреАрдЖрдИ рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рд╕реНрд╡реАрдХреГрдд / рд▓реМрдЯрд╛рдП рдЧрдП рдорд╛рдиреЛрдВ рдХреЗ рдкреНрд░рдХрд╛рд░реЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ, рдЬрд╣рд╛рдВ C # рднрд╛рд╖рд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, SwaggerOperation рд╡рд┐рд╢реЗрд╖рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдордиреЗ рдПрдХ рд╡рд┐рдзрд┐ рдХреЛ рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рд╣реИ, рдЬреЛ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдореЗрдВ рд╕рд░реНрд╡рд░ рдкрд░ рд╕рднреА рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рдХреА рдПрдХ рд╕реВрдЪреА рд▓реМрдЯрд╛рдПрдЧреА, рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЛрдб рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреА рд╡рд┐рдзрд┐ред рдбреЗрдЯрд╛ GetAllQuestionnaires рдХрд╣рд╛ рдЬрд╛рдПрдЧрд╛:

[HttpGet, Route("")] [SwaggerOperation(OperationId = "GetAllQuestionnaires")] [SuccessResponse(typeof(IEnumerable<QuestionnaireViewModel>))] public IEnumerable<QuestionnaireViewModel> Get() { var surveys = _questionnaireRepository.GetAll(); return surveys.Select(QuestionnaireViewModel.ToViewModel).ToArray(); } 

рдПрдХ рдПрдкреАрдЖрдИ рд╡рд┐рдзрд┐ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ 1 рдЙрджрд╛рд╣рд░рдг C # рдХреЛрдб рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛

рдлрд┐рд░, NSwag рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдо рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдПрдХ OpenAPI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬрд┐рд╕рдореЗрдВ рд╕рднреА API рд╕рдорд╛рдкрди рдмрд┐рдВрджреБ рд╣реЛрдВрдЧреЗ рдЬреЛ рдмреИрдХрдПрдВрдб рдХреЛрдб рдореЗрдВ рд╕рдВрдмрдВрдзрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдП рдЧрдП рд╣реИрдВред


рдЪрд┐рддреНрд░рд╛ 2 OpenAPI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝

рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╣рдо рд╣рдореЗрд╢рд╛ рдЕрдк-рдЯреВ-рдбреЗрдЯ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рдПрдкреАрдЖрдИ рдХреЗ рдЕрджреНрдпрддрди рдкреНрд░рд▓реЗрдЦрди рдмрдирд╛рдиреЗ рдореЗрдВ рдХрд╛рдордпрд╛рдм рд░рд╣реЗред

рдЯрд╛рдЗрдкрд┐рдВрдЧ


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

рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдкреНрд░рд╢реНрдирд╛рд╡рд▓реА рджреГрд╢реНрдп рдкреНрд░рдХрд╛рд░ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╛рдирдХрд╛рд░реА рд╣реИ (рдпрд╣рд╛рдБ рдкрдардиреАрдпрддрд╛ рдХреЗ рд▓рд┐рдП HTML рд░реВрдк рдореЗрдВ рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ)


рдЪрд┐рддреНрд░рд╛ 3 рдПрдХ OpenAPI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рдЙрджрд╛рд╣рд░рдг рдбреЗрдЯрд╛ рдореЙрдбрд▓

рдЕрдЧрд▓рд╛ рдХрджрдо рдЗрд╕ рдЬрд╛рдирдХрд╛рд░реА рдХреЛ рдлреНрд░рдВрдЯрдПрдВрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛрдб рдХреЛ рдкрд╛рд╕ рдХрд░рдирд╛ рд╣реИред

рдХреЛрдб рдЬрдирд░реЗрд╢рди


рд╣рдо рдХреНрд▓рд╛рдЗрдВрдЯ API рдХреЛрдб рдЬрдирд░реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП NSwag рдХрд╛ рднреА рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдЗрдирдкреБрдЯ рдкрд░, рдпрд╣ рдПрдХ OpenAPI рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреАрдЖрдИ рдХреЛрдб рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИред рд╕рд╛рдордиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╛рдкреНрдд рдХреЛрдб рдХреЗ рдмрдЧрд▓ рдореЗрдВ, рд╣рдо package.json рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рд╕реНрдерд╛рдиреАрдп npm рд░рдЬрд┐рд╕реНрдЯрд░ рдкрд░ рднреЗрдЬрддреЗ рд╣реИрдВред

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

 [SwaggerOperation(OperationId = "GetAllQuestionnaires")] 

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ C # рд╡рд┐рд╢реЗрд╖рддрд╛ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдСрдкрд░реЗрд╢рдирдЖрдИрдб рдХреНрд▓рд╛рдЗрдВрдЯ рд╡рд┐рдзрд┐ рдХрд╛ рдирд╛рдо рдмрди рдЬрд╛рдПрдЧрд╛ред


рдЪрд┐рддреНрд░ 4 рдЙрддреНрдкрдиреНрди рдЧреНрд░рд╛рд╣рдХ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг

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


рдЪрд┐рддреНрд░ 5 .d.ts рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдбреЗрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рд╡рд░реНрдгрди рдХрд░реЗрдВ

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


рдЪрд┐рддреНрд░ 6 рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреАрдЖрдИ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рдХреА рдЬрд╛рдирдХрд╛рд░реА рдХрд╛ рдЙрджрд╛рд╣рд░рдг рдЙрдкрдпреЛрдЧ

рдЯрд╛рдЗрдкрд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рд╕рднреА рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ рднреА рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред

рдиреАрдЪреЗ рджрд┐рдП рдЧрдП рдЖрдВрдХрдбрд╝реЛрдВ рдореЗрдВ рдПрдХ рдЙрджрд╛рд╣рд░рдгред


рдЪрд┐рддреНрд░ 7 рдЙрджрд╛рд╣рд░рдг рдХреНрд▓рд╛рдЗрдВрдЯ рдПрдкреАрдЖрдИ рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╕рддреНрдпрд╛рдкрди


рдЪрд┐рддреНрд░ 8 рдЙрджрд╛рд╣рд░рдг рдХреНрд▓рд╛рдЗрдВрдЯ API рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░ рд╕рддреНрдпрд╛рдкрди

рдирд┐рд╖реНрдХрд░реНрд╖


рдЗрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд▓рд╛рдн рдкреНрд░рд╛рдкреНрдд рд╣реБрдП:

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


рд╕рдВрджрд░реНрдн

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


All Articles