flask api tutorial with example extending flask with apis
Este tutorial de la API de Flask explica las extensiones populares de Flask como Flask twitter Oembedder, Flask API y Flask RESTful con ejemplos:
El framework Flask tiene una gran cantidad de extensiones. Estas extensiones son bastante útiles y fáciles de desarrollar. Sabemos que el framework Flask es muy Pythonic y tiene un conjunto mínimo de API, y es muy flexible, razón por la cual la comunidad Flask ha creado tantas extensiones para muchas tareas específicas.
Como parte de la serie de tutoriales de Flask, este tutorial tiene un ejemplo de algunas extensiones de Flask. Discutiremos las siguientes extensiones.
- Matraz twitter Oembedder
- API de matraz
- Matraz RESTful
=> Visite aquí para aprender el frasco desde cero
Aunque hemos discutido muchas extensiones como parte de nuestros tutoriales anteriores, este tutorial explica más con la perspectiva de examinar los componentes de una extensión de Flask.
Lo que vas a aprender:
¿Qué es una extensión de matraz?
Una extensión de matraz es un módulo de Python instalable o un paquete que implementa funcionalidad adicional a una aplicación de matraz. Una extensión de Flask puede ser tan simple como la que agrega soporte para consumir una API externa como Twitter para incrustar un tweet en una página web.
O una extensión de Flask podría ser un nuevo marco como Flask API o Flask-RESTful para crear aplicaciones que sigan un patrón arquitectónico o un paradigma de desarrollo.
Matraz twitter Oembedder
En esta sección, tomamos el ejemplo de un proyecto simple de código abierto existente de Aquí
Clone este proyecto en su máquina local e instálelo usando pip con la ayuda del comando mencionado a continuación.
|_+_|Esta extensión ayuda a incrustar un Tweet con la ayuda de una etiqueta de plantilla Jinja2. Sin embargo, para utilizar esta extensión, deberá solicitar una cuenta de desarrollador en Twitter. Una vez que obtenga una cuenta de desarrollador, cree una aplicación y obtendrá claves y secretos para consumir la API de Twitter.
¿Cuál es la diferencia entre control de calidad y garantía de calidad?
Una vez que tenga las claves y los secretos, guárdelos en un lugar seguro para que la aplicación pueda acceder a ellos. Los hemos mantenido en las variables de entorno y los hemos agregado a la configuración de la aplicación Flask, como se muestra a continuación. Nuestra aplicación de demostración mantiene los valores de configuración en el archivo config.py.
|_+_|Obtenemos los valores de las variables requeridas de las variables de entorno. Si el valor correspondiente no está presente en la variable de entorno, se almacena como Ninguno.
Una vez que agregue las líneas anteriores en el archivo de configuración, vaya al __init__.py de la aplicación Flask e inicialícelo modificándolo, como se muestra a continuación.
|_+_|Estas líneas inicializarán la extensión Flask. Ahora podemos modificar hello.html en las plantillas y agregar la etiqueta mencionada a continuación como se muestra a continuación.
|_+_|Agregamos esta etiqueta antes del bucle for en la plantilla existente. Ese dígito muy largo es la identificación del tweet. Obtenemos esta identificación de la URL del Tweet después de tuitear. Después de guardar el archivo de plantilla, navegamos hasta el punto final / hello / greetings y recibimos los resultados, como se muestra en la siguiente imagen.
Matraz RESTful
Nuestra aplicación de ejemplo Flask RESTful es la que respeta las limitaciones de la arquitectura REST. Sin embargo, no es como un protocolo, y los desarrolladores son flexibles al implementar funciones, siguiendo las restricciones REST.
Lea más sobre las limitaciones de la arquitectura REST Aquí .
Las aplicaciones web modernas permiten a los clientes solicitar los recursos en puntos finales fáciles de leer y estables sin estado.
Ejemplo de matraz RESTful
Implementemos algunas características de manera RESTful también en nuestra aplicación de ejemplo Flask RESTful.
Tenemos una forma de almacenar y entregar datos relacionados con álbumes y canciones. Implementemos una API usando la extensión Flask RESTful.
Primero, instale Flask RESTful usando el siguiente comando.
|_+_|Para facilitar el mantenimiento y la comprensión, creemos un archivo llamado api.py dentro del directorio de la aplicación y mencionemos las siguientes líneas de código. Por ahora, considere API similares a Vistas de matraces.
Vamos a implementar funciones correspondientes a los verbos HTTP para responder cuando el Cliente envía una solicitud al extremo del servidor de la aplicación.
|_+_|Hemos creado dos recursos llamados Canciones y Canción mediante la subclasificación de la clase abstracta Recurso de Flask-RESTful. La clase llamada Songs tiene dos métodos get y post correspondientes a los dos verbos HTTP; GET y POST, respectivamente.
mejor extensión de bloqueador de ventanas emergentes para Chrome
El recurso Canciones sirve todas las canciones al punto final registrado cuando el Cliente lo solicita y agrega una canción a la lista de canciones existentes cuando los datos se publican en el mismo punto final.
De manera similar, en el caso de la clase Song, HTTP GET, DELETE y PUT se implementan usando los métodos get, delete y put. El método get envía una respuesta con la canción solicitada como JSON, el método delete elimina una canción de SONGS y el método put actualiza una canción existente en SONGS.
Ahora agreguemos estos recursos a nuestra aplicación de muestra inicializándolos en el archivo __init__.py en la carpeta de la aplicación.
|_+_|Instalemos curl y probemos las funciones en los puntos finales indicados.
|_+_|Obtener todas las canciones
|_+_|Obtenemos la respuesta, como se muestra a continuación.
|_+_|Ahora usemos el comando que se menciona a continuación para agregar una canción.
|_+_|Obtenemos la respuesta de nuestra API, como se muestra a continuación.
|_+_|Ahora de nuevo, si consultamos la lista de canciones como hicimos en el comando anterior, obtendremos ambas canciones en la respuesta.
|_+_|Del mismo modo, HTTP DELETE y PUT funcionan según lo previsto. Agreguemos algunas pruebas para la versión v1 de esta API simple que hemos creado.
|_+_|Ahora ejecute estas pruebas desde la línea de comandos, como se muestra a continuación.
|_+_|De manera similar, podemos escribir pruebas para otros métodos para una mayor cobertura.
Una cosa importante a tener en cuenta es que las canciones que agregamos persisten como parte del proceso único bajo el cual se ejecuta el servidor de desarrollo. Significa que todos los datos nuevos se perderán tan pronto como se cierre el proceso.
Además, la tarea de crear la versión v1 de la API parece redundante, y es diferente a la forma en que guardábamos datos en la aplicación con la ayuda de formularios y vistas.
Por lo general, la implementación de la API RESTful requiere obtener datos de los clientes, establecer referencias entre los extremos del cliente y del servidor y la persistencia con la ayuda de los modelos de base de datos que hemos creado.
Además, los puntos finales están protegidos para entradas no deseadas y creadas.
Por lo tanto, recomendamos que los ejemplos anteriores sean solo para aprender los conceptos y las limitaciones de la arquitectura REST utilizando métodos HTTP. Recuerde que esta es solo una de las muchas formas de crear servicios web, en general. Además, hay muchas formas de implementar la arquitectura REST.
Alentamos a los lectores a explorar más a fondo cómo REST puede tener diferentes formatos de archivo y métodos personalizados utilizando otros protocolos y no solo JSON y HTTP. Solo para dar una idea de un uso de producción, proporcionamos el siguiente ejemplo.
Usamos un Flask-Appbuilder BaseApi para implementar características similares en diferentes puntos finales. Abra el archivo api.py y actualícelo con el código mencionado a continuación.
|_+_|Ahora agreguemos algunas pruebas más para probar los puntos finales que se crean con el Flask-Appbuilder. Ejecutaremos estas pruebas usando PyTest.
|_+_|Flask-Appbuilder también ayuda a proporcionar la interfaz de usuario de Swagger para enumerar y probar la API publicada. Abra config.py y actualícelo con la configuración que se muestra a continuación.
|_+_|Ahora navegue hasta https: // localhost: 8080 / swaggerview / v1 y podrá ver la vista Swagger como se muestra a continuación.
Ahora creemos API para los modelos de bases de datos existentes que tenemos. Necesitamos usar ModelApi del Flask-Appbuilder.
Actualice el archivo api.py con las siguientes líneas de código.
|_+_|Después de definir una clase basada en ModelRestApi, nuevamente necesitamos registrarla con Flask-Appbuilder usando el método add_api.
Ahora navegue a la interfaz de usuario de Swagger como antes, y verá una referencia de API similar a la que se muestra a continuación.
Puede probar la API desde la vista Swagger o enviando el rizo a los puntos finales como antes.
API de matraz
Flask API es un marco que es bastante similar al marco Django REST. Puede acceder a la documentación de la API de Flask Aquí . Es el reemplazo directo del marco Flask.
Podemos elegir cualquiera de los ejemplos anteriores para implementar las funciones impulsadas por la API REST de Flask en nuestra aplicación.
Ahora, confirmemos la fuente y publiquemos los cambios en el repositorio de origen usando Git. Tan pronto como nos comprometemos con el origen con el nombre de la rama y enviamos una solicitud de extracción, las pruebas unitarias se activarán automáticamente bajo las Acciones de Git como parte de las comprobaciones de la solicitud de extracción.
Botella RestPlus
Flask RestPlus es una extensión más de Flask que ayuda en la creación de la API REST usando Flask. Este proyecto se ha bifurcado en otra extensión llamada Flask-RESTX y ya no se mantiene.
Este proyecto tiene una buena colección de decoradores para describir las API y expone su documentación usando Swagger. Puedes consultar los detalles de este proyecto Aquí .
Preguntas frecuentes
P # 1) ¿Cómo creo una API REST con Flask?
Responder: Podemos usar el marco de Flask con otras extensiones de Flask como Flask-RESTful, Flask API, Flask RESTX, Connexion, etc. para crear aplicaciones web basadas en REST API. La mayoría de las extensiones funcionan con las otras características integradas del marco Flask y cualquier otra biblioteca / ORM existente.
P # 2) ¿Qué es un ejemplo de API REST?
Responder: En este tutorial se proporciona una aplicación de ejemplo que implementa la API RESTFul. Se ha utilizado Flask-RESTful para crear la aplicación de muestra. Lea sobre la sección de ejemplo de Flask RESTful en este tutorial.
P # 3) ¿Para qué sirve la API RESTful?
Responder: Una interfaz de programación de aplicaciones que generalmente utiliza solicitudes HTTP y tiene los métodos de backend correspondientes para verbos HTTP como GET, POST, PUT, etc. para permitir la comunicación entre el cliente y el servidor se denomina API RESTful.
mejor extractor de dvd gratis para mac
Dicha aplicación sigue los principios y restricciones de la arquitectura REST para implementar sus características.
Conclusión
Cubrimos los conceptos de las extensiones de Flask con la ayuda de tres extensiones, como Flask-twitter-oembedder, Flask API y Flask-RESTful.
Con la ayuda de Flask-twitter-oembedder, también cubrimos los conceptos de la API de Twitter. En general, también hemos incluido las ideas de implementar un servicio web RESTful, que sigue los principios y restricciones de la arquitectura REST.
En nuestro próximo tutorial, cubriremos la comparación entre el marco Django y Flask para ayudar a nuestros lectores a comprender las fortalezas y debilidades de ambos marcos. También ayudará a elegir un marco frente al otro en función de los requisitos particulares del proyecto.
=> Explore la serie de entrenamiento Simple Flask aquí
Lectura recomendada
- Tutorial de pruebas de API: una guía completa para principiantes
- Tutorial de la API de Rest: Restricciones y arquitectura de la API de REST
- Tutorial de Parasoft SOAtest: Herramienta de prueba de API sin script
- ¿Cómo crear documentación de API en Postman?
- Tutorial de la API REST de GitHub: compatibilidad con la API REST en GitHub
- ¿Cómo utilizar Postman para probar diferentes formatos de API?
- Tutorial POSTMAN: Pruebas de API con POSTMAN
- Las 31 preguntas más populares de la entrevista con Python Flask con respuestas