Petty Little Fun # 2: Estrelinha


Visão do túnel


Aconteceu que muitos aplicativos da Web são escritos em Python. Esse nicho de desenvolvimento do Python foi quase completamente compartilhado entre dois jogadores saudáveis ​​- Django e Flask. Portanto, uma grande porcentagem de programadores Python se dedica a trabalhar com essas duas estruturas.


Por esse motivo, muitos desenvolvedores de Python têm algum tipo de visão de túnel - sua abordagem de engenharia está bloqueada entre as duas bibliotecas.


Alguns programadores não se limitam ao Djano e ao Flask e adicionam todo tipo de novidades às suas ferramentas de combate. Por exemplo, a moderna estrutura Sanic .


Mudança tectônica: de WSGI para ASGI


Durante o período de rápida adaptação do Python às necessidades de desenvolvimento da Web, a comunidade criou o padrão WSGI - Web Server Gateway Interface. Este protocolo descreveu como um servidor Web poderia enviar solicitações HTTP para processamento em um aplicativo Python e receber respostas a partir daí.


A WSGI abriu o caminho para o desenvolvimento de muitas estruturas e bibliotecas de desenvolvimento da Web. Eles eram todos diferentes em sua arquitetura, mas iguais em sua maneira de se comunicar com um servidor da Web externo. O WSGI foi introduzido pela comunidade já em 2003, e todas as estruturas populares da Web clássicas baseadas em animais de estimação (incluindo Django e Flask) ainda o suportam.


Os problemas com o WSGI começaram depois que ferramentas poderosas para a execução assíncrona de código e corotinas apareceram no núcleo do Python. O WSGI é antigo e não está totalmente focado em trabalhar com novos recursos de idioma. Portanto, havia a necessidade de um novo protocolo assíncrono para comunicar um servidor da Web com os programas Python. Então o ASGI (Asynchronous Server Gateway Interface) apareceu - um descendente ideológico do WSGI , mas com corotinas e assincronia.


Os desenvolvedores das antigas estruturas foram mantidos reféns por seu público - eles simplesmente não podem pegar e transferir suas estruturas para a abordagem assíncrona (isso quebrará o código e destruirá a compatibilidade); portanto, todo o desenvolvimento usando ASGI acabou concentrado em novas estruturas lançadas nos últimos dois anos, e Django


Starlette - uma estrutura brilhante



Starlette é uma estrutura nova, ágil e legal que implementa a abordagem ASGI. Tudo sobre ele é focado na assincronia e nos novos chips do terceiro ramo do Python.


Além disso, a Starlette tem um monte de coisas boas.


  • GraphQL pronto para uso. Sim, essa nova abordagem para o desenvolvimento de interações cliente-servidor começa a empurrar o REST e ocupa seu lugar no mundo das estruturas da web.
  • Os soquetes da Web já estão embutidos e prontos para uso.
  • Conjunto de middleware pronto para trabalhar com autorização / autenticação, CORS.
  • Tarefas assíncronas incorporadas.

Loção sólida - FastAPI



Alguns programadores da Starlette gostaram bastante e criaram uma extensão para esse framework - FastAPI


O FastAPI é, de fato, uma mancha nas classes nativas da Starlette , adicionando vários novos recursos à já boa estrutura.


  • Buns para criar serviços da API REST + documentação do Swagger para métodos. A Starlette se concentra no moderno GraphQL , o FastAPI cuida de quem viu o REST .
  • Gadgets convenientes criados com base em dicas de ferramentas, tipos de variáveis. Por exemplo, validadores de dados internos.
  • Bom utilitário para processos de autenticação e autenticação - suporte para JWT, OAuth2.

E várias pequenas comodidades e comodidades.


No resíduo seco


É hora de mergulhar no mundo da ASGI e suas estruturas (a menos, é claro, que você já tenha feito isso). As soluções assíncronas ainda estão longe de dominar o mercado, mas estão avançando ativamente. E antes de tudo - por causa de sua velocidade.

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


All Articles