Python | Cree una API REST usando Flask

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:

  1. Uso de Flask sin bibliotecas externas
  2. 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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *