{"id":477190,"date":"2023-08-09T09:08:44","date_gmt":"2023-08-09T09:08:44","guid":{"rendered":""},"modified":"2023-09-05T11:14:14","modified_gmt":"2023-09-05T11:14:14","slug":"fastapi","status":"publish","type":"wiki","link":"https:\/\/oneproxy.pro\/pt\/wiki\/fastapi\/","title":{"rendered":"API r\u00e1pida"},"content":{"rendered":"<p>FastAPI \u00e9 uma estrutura web de alto desempenho e f\u00e1cil de usar para construir APIs com Python 3.6+ com base em dicas de tipo Python padr\u00e3o. Ele foi projetado para ser altamente escal\u00e1vel e f\u00e1cil de usar, ao mesmo tempo que fornece um conjunto robusto de recursos que o tornam uma excelente escolha para o desenvolvimento web moderno.<\/p>\n<h2>A G\u00eanese do FastAPI<\/h2>\n<p>FastAPI foi criado por Sebasti\u00e1n Ram\u00edrez e lan\u00e7ado pela primeira vez em dezembro de 2018. A principal motiva\u00e7\u00e3o para desenvolver FastAPI foi criar uma estrutura web que fosse altamente eficiente e f\u00e1cil de usar, aproveitando os novos recursos do Python, especialmente as dicas do tipo Python 3.6+. As primeiras men\u00e7\u00f5es ao FastAPI apareceram no GitHub, onde sua popularidade cresceu desde ent\u00e3o devido ao seu desempenho, facilidade de uso e excelente suporte da comunidade.<\/p>\n<h2>Por dentro do mundo da FastAPI<\/h2>\n<p>FastAPI aproveita o conceito de anota\u00e7\u00f5es de tipo e a poderosa estrutura Starlette para as web parts. Ele tamb\u00e9m usa Pydantic para manipula\u00e7\u00e3o de dados. Esses dois componentes fundamentais, combinados com os recursos exclusivos do FastAPI, tornam-no uma ferramenta poderosa para desenvolvimento web.<\/p>\n<p>Ao contr\u00e1rio de algumas outras estruturas da web, FastAPI foi projetado para ser ass\u00edncrono, permitindo lidar com v\u00e1rias solicita\u00e7\u00f5es simultaneamente. Essa assincronicidade \u00e9 alcan\u00e7ada usando as palavras-chave async e await do Python, tornando o FastAPI uma \u00f3tima op\u00e7\u00e3o para construir aplicativos e microsservi\u00e7os em tempo real.<\/p>\n<h2>Principais recursos do FastAPI<\/h2>\n<p>FastAPI vem carregado com uma ampla gama de recursos que o diferenciam de outras estruturas da web:<\/p>\n<ol>\n<li><strong>R\u00e1pido<\/strong>: \u00c9 um dos frameworks mais r\u00e1pidos dispon\u00edveis para Python, perdendo apenas para NodeJS e Go em termos de velocidade.<\/li>\n<li><strong>F\u00e1cil<\/strong>: \u00e9 muito amig\u00e1vel ao desenvolvedor, exigindo menos c\u00f3digo clich\u00ea, o que facilita o aprendizado de novos desenvolvedores.<\/li>\n<li><strong>Intuitivo<\/strong>: FastAPI aproveita as dicas de tipo do Python para fornecer valida\u00e7\u00e3o, serializa\u00e7\u00e3o e documenta\u00e7\u00e3o autom\u00e1ticas de dados.<\/li>\n<li><strong>Baseado em padr\u00f5es<\/strong>: FastAPI \u00e9 baseado (e totalmente compat\u00edvel com) os padr\u00f5es abertos para APIs: OpenAPI (anteriormente conhecido como Swagger) e JSON Schema.<\/li>\n<li><strong>Robusto<\/strong>: suporta manipula\u00e7\u00e3o de autentica\u00e7\u00e3o OAuth2, JSON Web Tokens, HTTP\/2 e WebSockets.<\/li>\n<li><strong>Escal\u00e1vel<\/strong>: FastAPI oferece suporte ao tratamento de solicita\u00e7\u00f5es ass\u00edncronas, o que o torna uma \u00f3tima op\u00e7\u00e3o para lidar com conex\u00f5es de longa dura\u00e7\u00e3o e atualiza\u00e7\u00f5es em tempo real.<\/li>\n<\/ol>\n<h2>Tipos de aplicativos FastAPI<\/h2>\n<p>N\u00e3o existem \u201ctipos\u201d espec\u00edficos de FastAPI, pois \u00e9 um framework, n\u00e3o uma classifica\u00e7\u00e3o. No entanto, pode ser usado para construir diferentes tipos de aplica\u00e7\u00f5es web:<\/p>\n<ol>\n<li><strong>APIs<\/strong>: foi projetado principalmente para criar APIs robustas e escalon\u00e1veis.<\/li>\n<li><strong>Aplicativos da web<\/strong>: tamb\u00e9m pode ser usado para construir aplicativos da web completos.<\/li>\n<li><strong>Microsservi\u00e7os<\/strong>: FastAPI \u00e9 uma excelente escolha para microsservi\u00e7os devido \u00e0 sua velocidade e escalabilidade.<\/li>\n<li><strong>Aplicativos em tempo real<\/strong>: Devido ao seu suporte para WebSockets, \u00e9 adequado para aplica\u00e7\u00f5es em tempo real.<\/li>\n<\/ol>\n<h2>Casos de uso pr\u00e1ticos e solu\u00e7\u00e3o de problemas com FastAPI<\/h2>\n<p>FastAPI foi amplamente adotado em setores que v\u00e3o desde fintech at\u00e9 biotecnologia, para tarefas como constru\u00e7\u00e3o de APIs RESTful, servidores de previs\u00e3o em tempo real e muito mais.<\/p>\n<p>Um problema comum ao trabalhar com APIs \u00e9 a valida\u00e7\u00e3o de dados de entrada. FastAPI resolve isso usando dicas de tipo do Python e a biblioteca Pydantic, que automatiza a valida\u00e7\u00e3o de dados. Outro problema comum \u00e9 o gerenciamento de tarefas ass\u00edncronas. FastAPI, com seu suporte integrado para asyncio do Python, simplifica o manuseio de tarefas ass\u00edncronas.<\/p>\n<h2>FastAPI versus outras estruturas<\/h2>\n<table>\n<thead>\n<tr>\n<th>Recurso<\/th>\n<th>API r\u00e1pida<\/th>\n<th>Frasco<\/th>\n<th>Django<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Velocidade<\/td>\n<td>Muito alto<\/td>\n<td>Moderado<\/td>\n<td>Moderado<\/td>\n<\/tr>\n<tr>\n<td>Curva de aprendizado<\/td>\n<td>Baixo<\/td>\n<td>Baixo<\/td>\n<td>Alto<\/td>\n<\/tr>\n<tr>\n<td>Flexibilidade<\/td>\n<td>Alto<\/td>\n<td>Alto<\/td>\n<td>Moderado<\/td>\n<\/tr>\n<tr>\n<td>Escalabilidade<\/td>\n<td>Alto<\/td>\n<td>Moderado<\/td>\n<td>Alto<\/td>\n<\/tr>\n<tr>\n<td>Recursos integrados<\/td>\n<td>Alto<\/td>\n<td>Moderado<\/td>\n<td>Alto<\/td>\n<\/tr>\n<tr>\n<td>Suporte ass\u00edncrono<\/td>\n<td>Sim<\/td>\n<td>N\u00e3o<\/td>\n<td>N\u00e3o<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>O futuro da FastAPI<\/h2>\n<p>O futuro do FastAPI parece promissor. Por se tratar de um projeto de c\u00f3digo aberto, o n\u00famero de colaboradores cresce continuamente, o que significa que novos recursos e melhorias podem ser esperados. Com mais empresas adotando FastAPI em seus projetos, \u00e9 seguro assumir que ela continuar\u00e1 sendo um player essencial no mundo dos frameworks web Python.<\/p>\n<p>Tecnologias emergentes como arquitetura sem servidor, conteineriza\u00e7\u00e3o e microsservi\u00e7os tamb\u00e9m s\u00e3o compat\u00edveis com FastAPI. Portanto, espera-se que se adapte e cres\u00e7a junto a esses novos paradigmas.<\/p>\n<h2>Servidores proxy e FastAPI<\/h2>\n<p>Um servidor proxy \u00e9 um servidor que atua como intermedi\u00e1rio para solicita\u00e7\u00f5es de clientes que buscam recursos de outros servidores. Ele pode ser usado em combina\u00e7\u00e3o com FastAPI para fornecer camadas adicionais de seguran\u00e7a, balanceamento de carga e cache.<\/p>\n<p>Por exemplo, em um caso de uso t\u00edpico, voc\u00ea pode ter um aplicativo FastAPI em execu\u00e7\u00e3o atr\u00e1s de um servidor proxy. O servidor proxy pode lidar com solicita\u00e7\u00f5es e respostas entre o cliente e seu aplicativo FastAPI. Ele pode armazenar em cache as respostas do aplicativo FastAPI, reduzindo a carga e melhorando os tempos de resposta. Al\u00e9m disso, um servidor proxy pode fornecer medidas de seguran\u00e7a adicionais, como limita\u00e7\u00e3o de taxa ou bloqueio de endere\u00e7os IP espec\u00edficos.<\/p>\n<h2>Links Relacionados<\/h2>\n<ul>\n<li>Reposit\u00f3rio FastAPI GitHub: <a href=\"https:\/\/github.com\/tiangolo\/fastapi\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/github.com\/tiangolo\/fastapi<\/a><\/li>\n<li>Documenta\u00e7\u00e3o Oficial FastAPI: <a href=\"https:\/\/fastapi.tiangolo.com\/\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/fastapi.tiangolo.com\/<\/a><\/li>\n<li>Reposit\u00f3rio Starlette GitHub: <a href=\"https:\/\/github.com\/encode\/starlette\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/github.com\/encode\/starlette<\/a><\/li>\n<li>Reposit\u00f3rio Pydantic GitHub: <a href=\"https:\/\/github.com\/samuelcolvin\/pydantic\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/github.com\/samuelcolvin\/pydantic<\/a><\/li>\n<li>Iniciativa OpenAPI: <a href=\"https:\/\/www.openapis.org\/\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/www.openapis.org\/<\/a><\/li>\n<li>Esquema JSON: <a href=\"https:\/\/json-schema.org\/\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/json-schema.org\/<\/a><\/li>\n<\/ul>","protected":false},"featured_media":468376,"menu_order":0,"template":"","meta":{"_acf_changed":false,"content-type":"","inline_featured_image":false,"footnotes":""},"class_list":["post-477190","wiki","type-wiki","status-publish","has-post-thumbnail","hentry"],"acf":{"faq_title":"Frequently Asked Questions about <mark>FastAPI: A Revolution in Web Development<\/mark>","faq_items":[{"question":"What is FastAPI?","answer":"<p>FastAPI is a high-performance web framework for building APIs with Python 3.6+. It is designed to be efficient, user-friendly, and supports asynchronous request handling.<\/p>"},{"question":"Who created FastAPI and when was it first released?","answer":"<p>FastAPI was created by Sebasti\u00e1n Ram\u00edrez and was first released in December 2018.<\/p>"},{"question":"What are the key features of FastAPI?","answer":"<p>FastAPI boasts several key features, including high speed, easy-to-use development, automatic data validation, and compatibility with open standards like OpenAPI and JSON Schema. It also supports OAuth2 authentication, JSON Web Tokens, HTTP\/2, and WebSockets.<\/p>"},{"question":"What types of applications can be built using FastAPI?","answer":"<p>FastAPI can be used to build a variety of applications, including APIs, web applications, microservices, and real-time applications.<\/p>"},{"question":"How does FastAPI compare to other frameworks like Flask and Django?","answer":"<p>When compared to Flask and Django, FastAPI stands out with its blazing speed, low learning curve, high flexibility, and excellent scalability. Additionally, it supports asynchronous request handling, which the other frameworks lack.<\/p>"},{"question":"What is the future outlook for FastAPI?","answer":"<p>The future of FastAPI looks promising as it is an open-source project with a growing community of contributors. It is expected to adapt to emerging technologies like serverless architecture and microservices.<\/p>"},{"question":"How can proxy servers be used with FastAPI?","answer":"<p>Proxy servers can be combined with FastAPI to provide additional security, load balancing, and caching. They act as intermediaries between the client and FastAPI application, enhancing performance and security.<\/p>"},{"question":"Where can I find more information about FastAPI?","answer":"<p>For more information about FastAPI, you can visit the official GitHub repository (<a href=\"https:\/\/github.com\/tiangolo\/fastapi\" target=\"_new\">https:\/\/github.com\/tiangolo\/fastapi<\/a>) or the official documentation (<a href=\"https:\/\/fastapi.tiangolo.com\/\" target=\"_new\">https:\/\/fastapi.tiangolo.com\/<\/a>). You may also explore related resources like Starlette (<a href=\"https:\/\/github.com\/encode\/starlette\" target=\"_new\">https:\/\/github.com\/encode\/starlette<\/a>) and Pydantic (<a href=\"https:\/\/github.com\/samuelcolvin\/pydantic\" target=\"_new\">https:\/\/github.com\/samuelcolvin\/pydantic<\/a>) used in conjunction with FastAPI.<\/p>"}]},"_links":{"self":[{"href":"https:\/\/oneproxy.pro\/pt\/wp-json\/wp\/v2\/wiki\/477190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneproxy.pro\/pt\/wp-json\/wp\/v2\/wiki"}],"about":[{"href":"https:\/\/oneproxy.pro\/pt\/wp-json\/wp\/v2\/types\/wiki"}],"version-history":[{"count":0,"href":"https:\/\/oneproxy.pro\/pt\/wp-json\/wp\/v2\/wiki\/477190\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oneproxy.pro\/pt\/wp-json\/wp\/v2\/media\/468376"}],"wp:attachment":[{"href":"https:\/\/oneproxy.pro\/pt\/wp-json\/wp\/v2\/media?parent=477190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}