← Terug naar tutorials

REST API's bouwen met Python Flask

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

  1. Probleem: De server start niet.

    • Oplossing: Controleer of je de juiste Python-versie gebruikt en of je Flask correct hebt geïnstalleerd.
  2. Probleem: Geen gegevens ontvangen bij een GET-verzoek.

    • Oplossing: Controleer of je items hebt toegevoegd met een POST-verzoek.
  3. 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):