De Python Flask module is handig voor het bouwen van een Rust-API. Een Rest API gebruikt het HTTP protocol zoals het oorspronkelijk is ontworpen.
Het HTTP-protocol heeft veel verzoeken zoals de GET, PUT, POST en DELETE verzoeken. Deze verzoeken moeten worden gebruikt voor het toevoegen en verwijdering van data.
Voor het maken van uw web app backend kunt u een Rest API gebruiken. Omdat het uw backend (logica) ontkoppelt van uw frontend (presentatie), kunt u eenvoudig de frontend veranderen.
Dit betekent dat u uw frontend kunt updaten zonder dat u uw backend opnieuw hoeft te coderen.
U kunt eenvoudig uw Python-apps online zetten.
GET request
Een get request is de meest elementaire. Dit is wanneer u uw browser gebruikt om een url te openen. Het onderliggende HTTP-protocol doet dan het GET-verzoek waarop de server de gegevens terug stuurt.
Vaak geeft dat JSON gegevens terug. Met een Flask Rest API, kan je dat zo doen:
from flask import Flask, jsonify, request
app = Flask(__name__)
incomes = [
{ 'name': 'Alice', 'amount': 2000 },
{ 'name': 'Abbey', 'amount': 2200 },
]
@app.route('/incomes')
def get_incomes():
return jsonify(incomes)
app.run(host='0.0.0.0', port=8080)
Open dan de url localhost:8080/incomes om de JSON-gegevens te zien. De front-end (Javascript) kan JSON-data inlezen en maken.
POST requests
POST requests worden gebruikt om gegevens toe te voegen. De gebruiker doet normaal gesproken geen postverzoek, de front-end doet dit voor u. U kunt dit echter wel nabootsen met een tool genaamd curl
of een extensie gebruiken.
Een nieuw POST requests afhandelen:
@app.route('/incomes', methods=['POST'])
def add_income():
incomes.append(request.get_json())
return '', 204
Dan kunt u een POST request doen. Om een postverzoek te starten, kunt u gebruik maken van curl.
curl -X POST -H "Content-Type: application/json" -d '{"name":"Aaron","amount":5000}' http://localhost:8080/incomes
Normaal gesproken doet uw webapplicatie het webverzoek. Als u zich niet op uw gemak voelt met de terminal, kunt u de postman-extensie gebruiken.
Top comments (0)