Requisito previo: Introducción a la API Rest
REST significa Transferencia de estado representacional y es un estilo arquitectónico utilizado en el desarrollo web moderno. Define un conjunto de reglas/restricciones para que una aplicación web envíe y reciba datos.
En este artículo, construiremos una API REST en Python utilizando el marco Flask. Flask es un micro framework popular para crear aplicaciones web. Dado que es un micro-marco, es muy fácil de usar y carece de la mayor parte de la funcionalidad avanzada que se encuentra en un marco completo. Por lo tanto, construir una API REST en Flask es muy simple.
Hay dos formas de crear una API REST en Flask:
- Uso de Flask sin bibliotecas externas
- Uso de la biblioteca matraz_restful
Bibliotecas requeridas:
flask_restful
se puede instalar a través del comando pip:
sudo pip3 install flask-restful
Método 1: usando solo Flask
Aquí, hay dos funciones: una función para simplemente devolver o imprimir los datos enviados a través de GET o POST y otra función para calcular el cuadrado de un número enviado a través de la solicitud GET e imprimirlo.
# Using flask to make an api # import necessary libraries and functions from flask import Flask, jsonify, request # creating a Flask app app = Flask(__name__) # on the terminal type: curl http://127.0.0.1:5000/ # returns hello world when we use GET. # returns the data that we send when we use POST. @app.route('/', methods = ['GET', 'POST']) def home(): if(request.method == 'GET'): data = "hello world" return jsonify({'data': data}) # A simple function to calculate the square of a number # the number to be squared is sent in the URL when we use GET # on the terminal type: curl http://127.0.0.1:5000 / home / 10 # this returns 100 (square of 10) @app.route('/home/<int:num>', methods = ['GET']) def disp(num): return jsonify({'data': num**2}) # driver function if __name__ == '__main__': app.run(debug = True)
Producción:
Ejecutando la función cuadrado:
Método 2: Usar matraz-reposado
Flask Restful es una extensión para Flask que agrega compatibilidad para crear API REST en Python usando Flask como back-end. Fomenta las mejores prácticas y es muy fácil de configurar. Flask Restful es muy fácil de aprender si ya estás familiarizado con Flask.
En flask_restful
, el bloque de construcción principal es un recurso. Cada recurso puede tener varios métodos asociados, como GET, POST, PUT, DELETE, etc. Por ejemplo, podría haber un recurso que calcule el cuadrado de un número siempre que se le envíe una solicitud de obtención. Cada recurso es una clase que se hereda de la clase de recursos de flask_restful. Una vez que se crea y define el recurso, podemos agregar nuestro recurso personalizado a la API y especificar una ruta URL para ese recurso correspondiente.
# using flask_restful from flask import Flask, jsonify, request from flask_restful import Resource, Api # creating the flask app app = Flask(__name__) # creating an API object api = Api(app) # making a class for a particular resource # the get, post methods correspond to get and post requests # they are automatically mapped by flask_restful. # other methods include put, delete, etc. class Hello(Resource): # corresponds to the GET request. # this function is called whenever there # is a GET request for this resource def get(self): return jsonify({'message': 'hello world'}) # Corresponds to POST request def post(self): data = request.get_json() # status code return jsonify({'data': data}), 201 # another resource to calculate the square of a number class Square(Resource): def get(self, num): return jsonify({'square': num**2}) # adding the defined resources along with their corresponding urls api.add_resource(Hello, '/') api.add_resource(Square, '/square/<int:num>') # driver function if __name__ == '__main__': app.run(debug = True)
Producción:
Publicación traducida automáticamente
Artículo escrito por Adith Bharadwaj y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA