рдкреЗрдЯреАрдПрдо рд▓рд┐рдЯрд┐рд▓ рдлрди # 2: рд╕реНрдЯрд╛рд░рд▓реЗрдЯ


рд╕реБрд░рдВрдЧ рджреГрд╖реНрдЯрд┐


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


рдЗрд╕ рдХрд╛рд░рдг рд╕реЗ, рдХрдИ рдкрд╛рдпрдерди рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдкрд╛рд╕ рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреА рд╕реБрд░рдВрдЧ рджреГрд╖реНрдЯрд┐ рд╣реИ - рдЙрдирдХрд╛ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рджреЛрдиреЛрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рдмреАрдЪ рдмрдВрдж рд╣реИред


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


рдЯреЗрдХреНрдЯреЛрдирд┐рдХ рд╢рд┐рдлреНрдЯ: WSGI рд╕реЗ ASGI рддрдХ


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


WSGI рдиреЗ рдХрдИ рд╡реЗрдм рдбреЗрд╡рд▓рдкрдореЗрдВрдЯ рдлреНрд░реЗрдорд╡рд░реНрдХ рдФрд░ рд▓рд╛рдЗрдмреНрд░реЗрд░реАрдЬрд╝ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХрд╛ рдорд╛рд░реНрдЧ рдкреНрд░рд╢рд╕реНрдд рдХрд┐рдпрд╛ред рд╡реЗ рдЕрдкрдиреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдореЗрдВ рд╕рднреА рдЕрд▓рдЧ рдереЗ, рд▓реЗрдХрд┐рди рдмрд╛рд╣рд░реА рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд╕рдВрд╡рд╛рдж рдХрд░рдиреЗ рдХреЗ рдЕрдкрдиреЗ рддрд░реАрдХреЗ рдореЗрдВ рднреА рд╡рд╣реА рдереЗред WSGI рдХреЛ 2003 рддрдХ рд╕рдореБрджрд╛рдп рджреНрд╡рд╛рд░рд╛ рдкреЗрд╢ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдФрд░ рд╕рднреА рд▓реЛрдХрдкреНрд░рд┐рдп рдХреНрд▓рд╛рд╕рд┐рдХ рдкрд╛рд▓рддреВ-рд╕рдВрдЪрд╛рд▓рд┐рдд рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ (Django рдФрд░ рдлреНрд▓рд╛рд╕реНрдХ рд╕рд╣рд┐рдд) рдЕрднреА рднреА рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддреЗ рд╣реИрдВред


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


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


рд╕реНрдЯрд╛рд░рд▓реЗрдЯ - рдПрдХ рд╢рд╛рдирджрд╛рд░ рдврд╛рдВрдЪрд╛



Starlette рдПрдХ рдирдпрд╛, рдлреБрд░реНрддреАрд▓рд╛ рдФрд░ рд╢рд╛рдВрдд рдврд╛рдВрдЪрд╛ рд╣реИ рдЬреЛ ASGI рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХреЛ рд▓рд╛рдЧреВ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕рдм рдХреБрдЫ рддреАрд╕рд░реА рдкрд╛рдпрдерди рд╢рд╛рдЦрд╛ рдХреЗ рдЕрддреБрд▓реНрдпрдХрд╛рд▓рд┐рдХ рдФрд░ рдирдП рдЪрд┐рдкреНрд╕ рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИред


рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рд╕реНрдЯрд╛рд░рд▓реЗрдЯ рдореЗрдВ рдЧрдВрднреАрд░ рдЕрдЪреНрдЫрд╛рдЗрдпреЛрдВ рдХрд╛ рдПрдХ рдкреВрд░рд╛ рдЧреБрдЪреНрдЫрд╛ рд╣реИ ред


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

рдареЛрд╕ рд▓реЛрд╢рди - FastAPI



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


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


  • REST API рд╕реЗрд╡рд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдмрдиреНрд╕ + рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд▓рд┐рдП рд╕реНрд╡реИрдЧрд░ рдкреНрд░рд▓реЗрдЦрдиред рд╕реНрдЯрд╛рд░рд▓реЗрдЯ рдЯреНрд░реЗрдВрдбреА рдЧреНрд░рд╛рдлрдХрд▓рд╛рдЗрди рдкрд░ рдХреЗрдВрджреНрд░рд┐рдд рд╣реИ, FastAPI рдЙрди рд▓реЛрдЧреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦрддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЛрдВрдиреЗ REST рдХреЛ рджреЗрдЦрд╛ рдерд╛ред
  • рдЙрдкрдХрд░рдг-рдкреНрд░рдХрд╛рд░-рдкреНрд░рдХрд╛рд░ рдХреЗ рдЪрд░ рдкрд░ рдирд┐рд░реНрдорд┐рдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдЧреИрдЬреЗрдЯред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЕрдВрддрд░реНрдирд┐рд╣рд┐рдд рдбреЗрдЯрд╛ рд╕рддреНрдпрд╛рдкрдирдХрд░реНрддрд╛ред
  • рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдФрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рдЙрдкрдпреЛрдЧрд┐рддрд╛ - JWT, OAuth2 рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдердиред

рдФрд░ рдХрдИ рдЫреЛрдЯреА-рдЫреЛрдЯреА рд╕реБрд╡рд┐рдзрд╛рдПрдВ рдФрд░ рд╕реБрдЦ-рд╕реБрд╡рд┐рдзрд╛рдПрдВред


рд╕реВрдЦреЗ рдЕрд╡рд╢реЗрд╖реЛрдВ рдореЗрдВ


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

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


All Articles