{"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\/es\/wiki\/fastapi\/","title":{"rendered":"API r\u00e1pida"},"content":{"rendered":"<p>FastAPI es un marco web de alto rendimiento y f\u00e1cil de usar para crear API con Python 3.6+ basado en sugerencias de tipo est\u00e1ndar de Python. Ha sido dise\u00f1ado para ser altamente escalable y f\u00e1cil de usar, al tiempo que proporciona un s\u00f3lido conjunto de caracter\u00edsticas que lo convierten en una excelente opci\u00f3n para el desarrollo web moderno.<\/p>\n<h2>La g\u00e9nesis de FastAPI<\/h2>\n<p>FastAPI fue creado por Sebasti\u00e1n Ram\u00edrez y se lanz\u00f3 por primera vez en diciembre de 2018. La motivaci\u00f3n principal para desarrollar FastAPI fue crear un marco web que fuera a la vez altamente eficiente y f\u00e1cil de usar, aprovechando las nuevas caracter\u00edsticas de Python, especialmente las sugerencias tipo Python 3.6+. Las primeras menciones de FastAPI aparecieron en GitHub, donde desde entonces ha ganado popularidad debido a su rendimiento, facilidad de uso y excelente soporte comunitario.<\/p>\n<h2>Dentro del mundo de FastAPI<\/h2>\n<p>FastAPI aprovecha el concepto de anotaciones de tipo y el potente marco Starlette para los elementos web. Tambi\u00e9n utiliza Pydantic para el manejo de datos. Estos dos componentes fundamentales, combinados con las caracter\u00edsticas \u00fanicas de FastAPI, la convierten en una poderosa herramienta para el desarrollo web.<\/p>\n<p>A diferencia de otros marcos web, FastAPI est\u00e1 dise\u00f1ado para ser as\u00edncrono, lo que le permite manejar m\u00faltiples solicitudes simult\u00e1neamente. Esta asincronicidad se logra utilizando las palabras clave async y await de Python, lo que convierte a FastAPI en una excelente opci\u00f3n para crear aplicaciones y microservicios en tiempo real.<\/p>\n<h2>Caracter\u00edsticas clave de FastAPI<\/h2>\n<p>FastAPI viene cargado con una amplia gama de caracter\u00edsticas que lo diferencian de otros frameworks web:<\/p>\n<ol>\n<li><strong>R\u00e1pido<\/strong>: Es uno de los marcos m\u00e1s r\u00e1pidos disponibles para Python, solo superado por NodeJS y Go en t\u00e9rminos de velocidad.<\/li>\n<li><strong>F\u00e1cil<\/strong>: Es muy f\u00e1cil de usar para los desarrolladores y requiere menos c\u00f3digo repetitivo, lo que facilita el aprendizaje de los nuevos desarrolladores.<\/li>\n<li><strong>Intuitivo<\/strong>: FastAPI aprovecha las sugerencias de tipos de Python para proporcionar validaci\u00f3n, serializaci\u00f3n y documentaci\u00f3n autom\u00e1ticas de datos.<\/li>\n<li><strong>Basado en est\u00e1ndares<\/strong>: FastAPI se basa en (y es totalmente compatible con) los est\u00e1ndares abiertos para API: OpenAPI (anteriormente conocido como Swagger) y JSON Schema.<\/li>\n<li><strong>Robusto<\/strong>: Admite el manejo de autenticaci\u00f3n OAuth2, JSON Web Tokens, HTTP\/2 y WebSockets.<\/li>\n<li><strong>Escalable<\/strong>: FastAPI admite el manejo de solicitudes asincr\u00f3nicas, lo que lo convierte en una excelente opci\u00f3n para manejar conexiones de larga duraci\u00f3n y actualizaciones en tiempo real.<\/li>\n<\/ol>\n<h2>Tipos de aplicaciones FastAPI<\/h2>\n<p>No existen &quot;tipos&quot; espec\u00edficos de FastAPI, ya que es un marco, no una clasificaci\u00f3n. Sin embargo, se puede utilizar para crear diferentes tipos de aplicaciones web:<\/p>\n<ol>\n<li><strong>API<\/strong>: est\u00e1 dise\u00f1ado principalmente para crear API s\u00f3lidas y escalables.<\/li>\n<li><strong>Aplicaciones web<\/strong>: Tambi\u00e9n se puede utilizar para crear aplicaciones web completas.<\/li>\n<li><strong>Microservicios<\/strong>: FastAPI es una excelente opci\u00f3n para microservicios debido a su velocidad y escalabilidad.<\/li>\n<li><strong>Aplicaciones en tiempo real<\/strong>: Debido a su soporte para WebSockets, es adecuado para aplicaciones en tiempo real.<\/li>\n<\/ol>\n<h2>Casos de uso pr\u00e1cticos y resoluci\u00f3n de problemas con FastAPI<\/h2>\n<p>FastAPI se ha adoptado ampliamente en industrias que van desde la tecnolog\u00eda financiera hasta la biotecnolog\u00eda, para tareas como la creaci\u00f3n de API RESTful, servidores de predicci\u00f3n en tiempo real y m\u00e1s.<\/p>\n<p>Un problema com\u00fan al trabajar con API es la validaci\u00f3n de datos de entrada. FastAPI resuelve esto utilizando las sugerencias de tipo de Python y la biblioteca Pydantic, que automatiza la validaci\u00f3n de datos. Otro problema com\u00fan es la gesti\u00f3n de tareas asincr\u00f3nicas. FastAPI, con su soporte integrado para asyncio de Python, simplifica el manejo de tareas asincr\u00f3nicas.<\/p>\n<h2>FastAPI frente a otros marcos<\/h2>\n<table>\n<thead>\n<tr>\n<th>Caracter\u00edstica<\/th>\n<th>API r\u00e1pida<\/th>\n<th>Matraz<\/th>\n<th>Django<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>Velocidad<\/td>\n<td>Muy alto<\/td>\n<td>Moderado<\/td>\n<td>Moderado<\/td>\n<\/tr>\n<tr>\n<td>Curva de aprendizaje<\/td>\n<td>Bajo<\/td>\n<td>Bajo<\/td>\n<td>Alto<\/td>\n<\/tr>\n<tr>\n<td>Flexibilidad<\/td>\n<td>Alto<\/td>\n<td>Alto<\/td>\n<td>Moderado<\/td>\n<\/tr>\n<tr>\n<td>Escalabilidad<\/td>\n<td>Alto<\/td>\n<td>Moderado<\/td>\n<td>Alto<\/td>\n<\/tr>\n<tr>\n<td>Funciones integradas<\/td>\n<td>Alto<\/td>\n<td>Moderado<\/td>\n<td>Alto<\/td>\n<\/tr>\n<tr>\n<td>Soporte asincr\u00f3nico<\/td>\n<td>S\u00ed<\/td>\n<td>No<\/td>\n<td>No<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>El futuro de FastAPI<\/h2>\n<p>El futuro de FastAPI parece prometedor. Como se trata de un proyecto de c\u00f3digo abierto, el n\u00famero de contribuyentes crece continuamente, lo que significa que se pueden esperar nuevas funciones y mejoras. Con m\u00e1s empresas adoptando FastAPI para sus proyectos, es seguro asumir que seguir\u00e1 siendo un actor esencial en el mundo de los marcos web Python.<\/p>\n<p>Las tecnolog\u00edas emergentes como la arquitectura sin servidor, la contenedorizaci\u00f3n y los microservicios tambi\u00e9n son compatibles con FastAPI. Por tanto, se espera que se adapte y crezca junto a estos nuevos paradigmas.<\/p>\n<h2>Servidores proxy y FastAPI<\/h2>\n<p>Un servidor proxy es un servidor que act\u00faa como intermediario para las solicitudes de clientes que buscan recursos de otros servidores. Se puede utilizar en combinaci\u00f3n con FastAPI para proporcionar capas adicionales de seguridad, equilibrio de carga y almacenamiento en cach\u00e9.<\/p>\n<p>Por ejemplo, en un caso de uso t\u00edpico, es posible que tenga una aplicaci\u00f3n FastAPI ejecut\u00e1ndose detr\u00e1s de un servidor proxy. El servidor proxy puede manejar solicitudes y respuestas entre el cliente y su aplicaci\u00f3n FastAPI. Puede almacenar en cach\u00e9 las respuestas de la aplicaci\u00f3n FastAPI, reduciendo la carga y mejorando los tiempos de respuesta. Adem\u00e1s, un servidor proxy puede proporcionar medidas de seguridad adicionales, como limitar la velocidad o bloquear direcciones IP espec\u00edficas.<\/p>\n<h2>Enlaces relacionados<\/h2>\n<ul>\n<li>Repositorio FastAPI GitHub: <a href=\"https:\/\/github.com\/tiangolo\/fastapi\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/github.com\/tiangolo\/fastapi<\/a><\/li>\n<li>Documentaci\u00f3n oficial de FastAPI: <a href=\"https:\/\/fastapi.tiangolo.com\/\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/fastapi.tiangolo.com\/<\/a><\/li>\n<li>Repositorio Starlette en GitHub: <a href=\"https:\/\/github.com\/encode\/starlette\" target=\"_new\" rel=\"noopener nofollow\">https:\/\/github.com\/encode\/starlette<\/a><\/li>\n<li>Repositorio 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\/es\/wp-json\/wp\/v2\/wiki\/477190","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/oneproxy.pro\/es\/wp-json\/wp\/v2\/wiki"}],"about":[{"href":"https:\/\/oneproxy.pro\/es\/wp-json\/wp\/v2\/types\/wiki"}],"version-history":[{"count":0,"href":"https:\/\/oneproxy.pro\/es\/wp-json\/wp\/v2\/wiki\/477190\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/oneproxy.pro\/es\/wp-json\/wp\/v2\/media\/468376"}],"wp:attachment":[{"href":"https:\/\/oneproxy.pro\/es\/wp-json\/wp\/v2\/media?parent=477190"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}