0Pricing
Python Academy · Lektion

Einen REST-Endpunkt erstellen

JSON-Antworten zurückgeben

Einen REST-Endpunkt erstellen ist eine kostenlose Python Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Python Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist eine REST-API?

Eine REST-API stellt Ressourcen über HTTP mithilfe standardisierter Methoden bereit. Statt HTML-Seiten gibt sie normalerweise Daten als JSON zurück, die von anderen Programmen verarbeitet werden können.

from flask import Flask, jsonify
app = Flask(__name__)
# REST endpoints return data, not pages
print('REST APIs speak JSON over HTTP')

JSON zurückgeben

jsonify() wandelt ein Python-Dictionary oder eine Liste in eine JSON-Antwort mit dem richtigen Inhaltstyp um.

from flask import Flask, jsonify
app = Flask(__name__)

@app.route('/api/status')
def status():
    return jsonify({'status': 'ok'})
print('jsonify builds a JSON response')

Dictionaries werden automatisch konvertiert

Modernes Flask wandelt ein zurückgegebenes Dictionary ebenfalls automatisch in JSON um, sodass Sie jsonify() oft weglassen können.

from flask import Flask
app = Flask(__name__)

@app.route('/api/ping')
def ping():
    return {'message': 'pong'}
print('Returning a dict yields JSON')

Eine Liste zurückgeben

Um eine Sammlung zurückzugeben, übergeben Sie eine Liste an jsonify(). Jedes Element ist normalerweise ein Dictionary, das eine Ressource darstellt.

from flask import Flask, jsonify
app = Flask(__name__)
books = [{'id': 1, 'title': 'A'}, {'id': 2, 'title': 'B'}]

@app.route('/api/books')
def list_books():
    return jsonify(books)
print('Return a list of resources')

Eine Ressource per GET abrufen

Verwenden Sie einen dynamischen URL-Bestandteil, um ein einzelnes Element anhand seiner ID abzurufen. Geben Sie 404 zurück, wenn es nicht vorhanden ist.

from flask import Flask, jsonify
app = Flask(__name__)
books = {1: {'id': 1, 'title': 'A'}}

@app.route('/api/books/<int:bid>')
def get_book(bid):
    book = books.get(bid)
    if book is None:
        return jsonify({'error': 'not found'}), 404
    return jsonify(book)
print('GET /api/books/1')

Mit POST erstellen

Eine POST-Anfrage erstellt eine Ressource. Lesen Sie den JSON-Body aus, erstellen Sie das neue Element und geben Sie es mit dem Status 201 Created zurück.

from flask import Flask, request, jsonify
app = Flask(__name__)
books = []

@app.route('/api/books', methods=['POST'])
def create_book():
    data = request.get_json()
    book = {'id': len(books) + 1, 'title': data['title']}
    books.append(book)
    return jsonify(book), 201
print('POST creates and returns 201')

Mit PUT aktualisieren

PUT ersetzt oder aktualisiert eine vorhandene Ressource, die anhand ihrer ID identifiziert wird.

from flask import Flask, request, jsonify
app = Flask(__name__)
books = {1: {'id': 1, 'title': 'A'}}

@app.route('/api/books/<int:bid>', methods=['PUT'])
def update_book(bid):
    if bid not in books:
        return jsonify({'error': 'not found'}), 404
    books[bid]['title'] = request.get_json()['title']
    return jsonify(books[bid])
print('PUT updates a resource')

Mit DELETE löschen

DELETE entfernt eine Ressource. Bei Erfolg ist die Rückgabe des Status 204 No Content üblich.

from flask import Flask, jsonify
app = Flask(__name__)
books = {1: {'id': 1, 'title': 'A'}}

@app.route('/api/books/<int:bid>', methods=['DELETE'])
def delete_book(bid):
    if bid in books:
        del books[bid]
        return '', 204
    return jsonify({'error': 'not found'}), 404
print('DELETE removes a resource')

Statuscodes sind wichtig

REST basiert auf HTTP-Statuscodes: 200 OK, 201 Created, 204 No Content, 400 Bad Request, 404 Not Found.

# 200 success
# 201 created
# 204 no content
# 400 bad request
# 404 not found
print('Use the right status code')

Den Body validieren

Prüfen Sie vor dem Erstellen, ob erforderliche Felder vorhanden sind. Geben Sie bei einem ungültigen Body den Status 400 mit einer Fehlermeldung zurück.

from flask import Flask, request, jsonify
app = Flask(__name__)

@app.route('/api/books', methods=['POST'])
def create_book():
    data = request.get_json(silent=True) or {}
    if 'title' not in data:
        return jsonify({'error': 'title required'}), 400
    return jsonify(data), 201
print('Validate JSON before using it')

Konsistente Antworten

Gute APIs liefern eine vorhersehbare Struktur, indem sie Daten und Fehler häufig jedes Mal auf dieselbe Weise verpacken, sodass Clients sich darauf verlassen können.

from flask import jsonify
# Success: {'data': {...}}
# Error:   {'error': 'message'}
# Keep the shape consistent across endpoints
print('Predictable shapes help clients')

Kurzer Test

Testen Sie Ihr REST-Wissen.

Zusammenfassung

Sie haben einen JSON-REST-Endpunkt erstellt.

  • jsonify() (oder ein zurückgegebenes Dictionary) erzeugt JSON-Antworten
  • Ordnen Sie HTTP-Methoden zu: GET liest, POST erstellt, PUT aktualisiert, DELETE entfernt
  • Geben Sie aussagekräftige Statuscodes wie 201, 204, 400 und 404 zurück
  • Validieren Sie den Request-Body und sorgen Sie für konsistente Antworten

Häufig gestellte Fragen

Ist die Lektion „Einen REST-Endpunkt erstellen“ kostenlos?

Ja — der vollständige Text von „Einen REST-Endpunkt erstellen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Python Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Python Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Einen REST-Endpunkt erstellen“?

JSON-Antworten zurückgeben Du übst Python Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Python Academy zu starten?

Keine Vorkenntnisse erforderlich. Python Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Einen REST-Endpunkt erstellen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Python Academy-Lektion Code schreiben und ausführen?

Ja. Jede Python Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Routen und Views
  2. Templates mit Jinja2
  3. Formulare und Anfragedaten
  4. Einen REST-Endpunkt erstellen
← Zurück zu Python Academy