REST API’s bouwen met Python Flask
Introductie
In deze tutorial gaan we aan de slag met het bouwen van REST API’s met Flask, een micro webframework voor Python. Flask is populair vanwege zijn eenvoud en flexibiliteit, waardoor het een uitstekende keuze is voor ontwikkelaars die snel en efficiënt willen werken. We richten ons op een gemiddeld niveau, dus enige ervaring met Python en basiskennis van webontwikkeling is handig.
Stappen (gedetailleerd)
Stap 1: Installatie van Flask
Voordat we beginnen, moeten we Flask installeren. Dit kan eenvoudig via pip. Open je terminal en voer het volgende commando uit:
pip install Flask
Stap 2: Maak een basis Flask-app
Laten we een eenvoudige Flask-app maken. Maak een nieuw bestand aan, bijvoorbeeld app.py, en voeg de volgende code toe:
from flask import Flask, jsonify, request
app = Flask(__name__)
@app.route('/')
def home():
return "Welkom bij de Flask API!"
if __name__ == '__main__':
app.run(debug=True)
Start de app door python app.py uit te voeren en ga naar http://127.0.0.1:5000/ in je browser. Je zou de boodschap “Welkom bij de Flask API!” moeten zien.
Stap 3: Maak een eenvoudige REST API
Laten we nu een RESTful endpoint toevoegen. We gaan een lijst met items beheren. Voeg de volgende code toe aan je app.py:
items = []
@app.route('/items', methods=['GET'])
def get_items():
return jsonify(items)
@app.route('/items', methods=['POST'])
def add_item():
item = request.json
items.append(item)
return jsonify(item), 201
Hiermee hebben we een endpoint gemaakt om items op te halen met een GET-verzoek en nieuwe items toe te voegen met een POST-verzoek.
Stap 4: Test de API
Gebruik een tool zoals Postman of cURL om je API te testen. Voor een GET-verzoek, gebruik:
curl http://127.0.0.1:5000/items
Voor het toevoegen van een item met POST:
curl -X POST http://127.0.0.1:5000/items -H "Content-Type: application/json" -d '{"name": "item1"}'
Stap 5: Voeg foutafhandeling en validatie toe
Foutafhandeling is cruciaal in een API. We kunnen bijvoorbeeld controleren of de juiste gegevens zijn verzonden:
@app.route('/items', methods=['POST'])
def add_item():
item = request.json
if 'name' not in item:
return jsonify({"error": "Naam is vereist!"}), 400
items.append(item)
return jsonify(item), 201
Stap 6: Documentatie en gebruik van Swagger
Het is ook belangrijk om je API goed te documenteren. Je kunt Swagger gebruiken om automatisch documentatie te genereren. Installeer de benodigde bibliotheek:
pip install flask-swagger-ui
Voeg de volgende code toe aan je app.py om Swagger te integreren:
from flask_swagger_ui import get_swaggerui_blueprint
SWAGGER_URL = '/swagger'
API_URL = '/static/swagger.json' # Voeg hier je Swagger JSON endpoint toe
swaggerui_blueprint = get_swaggerui_blueprint(
SWAGGER_URL,
API_URL,
config={'app_name': "Flask API"}
)
app.register_blueprint(swaggerui_blueprint, url_prefix=SWAGGER_URL)
Vergelijking met andere frameworks
Flask vs. Django
Django is een full-stack framework dat meer functies en een steilere leercurve biedt in vergelijking met Flask. Het is ideaal voor grotere projecten waar je veel ingebouwde functionaliteiten nodig hebt, zoals een ORM en gebruikersauthenticatie. Flask daarentegen is lichter en biedt meer vrijheid in hoe je je app structuur aanbrengt.
Flask vs. FastAPI
FastAPI is een modern framework dat is ontworpen voor het bouwen van snel en efficiënt API’s met Python. Het ondersteunt asynchrone programmering en biedt automatische documentatie via Swagger. FastAPI is vaak sneller dan Flask, vooral voor API’s met hoge prestaties. Flask blijft echter populair vanwege zijn eenvoud en flexibele aanpak.
Probleemoplossing
-
Probleem: De server start niet.
- Oplossing: Controleer of je de juiste Python-versie gebruikt en of je Flask correct hebt geïnstalleerd.
-
Probleem: Geen gegevens ontvangen bij een GET-verzoek.
- Oplossing: Controleer of je items hebt toegevoegd met een POST-verzoek.
-
Probleem: Foutmelding bij het toevoegen van een item.
- Oplossing: Zorg ervoor dat de JSON-structuur correct is en dat je de vereiste velden hebt ingevuld.
Conclusie
In deze tutorial hebben we een eenvoudige REST API gebouwd met Flask. Je hebt geleerd hoe je een basisapp kunt opzetten, endpoints kunt maken, gegevens kunt valideren en zelfs documentatie kunt genereren met Swagger. Flask is een krachtig hulpmiddel voor het bouwen van API’s, en met de kennis die je nu hebt, kun je verder experimenteren en meer geavanceerde functionaliteit toevoegen aan je projecten.
SEO Metadata (Engels):
- meta_title: Build REST APIs with Python Flask
- meta_description: Learn how to build REST APIs using Python Flask in this comprehensive tutorial. Perfect for intermediate developers.
- slug: build-rest-apis-python-flask
- keywords: Flask, REST API, Python, web development, tutorial
- faq:
- Wat is Flask?
- Hoe verschilt Flask van Django?
- Kan ik Flask gebruiken voor grote projecten?
- Hoe gebruik ik Swagger met Flask?
- Wat zijn de voordelen van FastAPI ten opzichte van Flask?