Operacje POST

Wprowadzenie do FastAPI

Matt Eckerle

Software and Data Engineering Leader

Operacje GET a POST

Operacje GET

  • Tradycyjne zastosowanie: pobieranie informacji o obiekcie

  • Parametry przekazywane przez ciąg zapytania

  • Można wysłać z przeglądarki internetowej

api = "http://moviereviews.co/reviews/1"
response = requests.get(api)

Operacje POST

  • Tradycyjne zastosowanie: tworzenie nowego obiektu

  • Parametry przekazywane przez ciąg zapytania oraz treść żądania

  • Wymaga aplikacji lub frameworka

    • np. cURL, requests
api = "http://moviereviews.co/reviews/"
body = {"text": "A great movie!"}
response = requests.post(api, json=body)
Wprowadzenie do FastAPI

Treść żądania HTTP

  • Dane wysyłane po nagłówku żądania HTTP
  • Nagłówek określa kodowanie treści
  • Obsługuje zagnieżdżone struktury danych
  • JSON i XML to najczęstsze kodowania w API
  • JSON to domyślne kodowanie FastAPI

Przykład JSON

# Create a record for a movie review
{"movie": "The Neverending Story",
 "review": {"num_stars": 4,
            "text": "Great movie!",
            "public": true}}
Wprowadzenie do FastAPI

Użycie BaseModel z pydantic

pydantic: interfejs do definiowania schematów treści żądań i odpowiedzi

Uwaga

Zagnieżdżamy Review wewnątrz MovieReview

from pydantic import BaseModel

class Review(BaseModel):
    num_stars: int
    text: str
    public: bool = False

class MovieReview(BaseModel):
    movie: str
    # Nest Review in MovieReview
    review: Review
Wprowadzenie do FastAPI

Obsługa operacji POST

Endpoint POST do tworzenia nowej recenzji filmu:

  • Endpoint: /reviews
  • Wejście: MovieReview (ze poprzedniego slajdu)
  • Wyjście: db_review (zdefiniowane gdzie indziej)
@app.post("/reviews", response_model=DbReview)
def create_review(review: MovieReview):
    # Persist the movie review to the database
    db_review = crud.create_review(review)
    # Return the review including database ID
    return db_review
1 https://fastapi.tiangolo.com/tutorial/sql-databases/#crud-utils
Wprowadzenie do FastAPI

Czas na ćwiczenia!

Wprowadzenie do FastAPI

Preparing Video For Download...