[PYTHON] Zur Zeit möchte ich mit FastAPI zeigen, wie man eine solche API in swagger verwendet

Überblick

Definieren Sie vorerst die Form der Antwort von der API auf dem Prahlerbildschirm der Fast API. Artikel für diejenigen, die Beispielantworten sehen möchten.

Ich war so, aber ich konnte keinen solchen Artikel oder Blog finden, Vorerst habe ich das offizielle Tutorial von Fastapi durchgesehen. Ich schrieb es in der Hoffnung, dass es jemandem mit dem gleichen Zweck helfen würde.

Annahme

―― Angenommen, dieser Datentyp wird als Antwort zurückgegeben.

{
    "Special_choco1": {
      "Milk": "many",
      "Quantity": 5,
      "Cacao": "a little"
    },
    "Store":[
      {
        "Tokyo": "sibuya",
        "Hokkaido": "sapporo",
        "Osaka": "nanba"
      }
    ]
}

--Schreibe in main.py. Schreiben Sie in eine Datei, die app = FastAPI () schreibt.

-Ich bin sicher, es gibt einen anderen besseren Weg, es zu schreiben.

Definieren Sie zunächst die Form der Antwort

from fastapi import FastAPI
from pydantic import BaseModel
from typing import List

class choco_model(BaseModel):
    Milk: str
    Quantity: int
    Cacao: str

class Store_model(BaseModel):
    Tokyo: str
    Hokkaido: str
    Osaka: str

class Special_choco(BaseModel):
    Special_choco1: choco_model
    Store: List[Store_model]

app = FastAPI()

@app.get("/api/v1/chocolate/{name}")
async def making_choco(name: str):
    return #Ausgelassen. Ein Bild des Schreibens von etwas, das den in der Prämisse beschriebenen JSON zu ändern scheint.

Zeigen Sie das im Beispielwert definierte Modell an

Geben Sie das Modell, das Sie in response_model definieren möchten, im Dekorator an. Dann wird es im Beispielwert von swagger angezeigt.

#Unterlassung)

app = FastAPI()

@app.get("/api/v1/chocolate/{name}", response_model=Special_choco)
async def making_choco(name: str):
    return #Ausgelassen. Ein Bild des Schreibens von etwas, das den in der Prämisse beschriebenen JSON zu ändern scheint.

So was. スクリーンショット 2020-04-05 21.59.48.png

Beispielwert genauer anzeigen.

Anzeige nicht nur des Typs und der Datenstruktur, sondern auch der zurückgegebenen Wert Beschreiben Sie die Daten, die Sie im Definitionsteil in der Klasse Config anzeigen möchten, wie folgt. Anschließend wird der konkrete Wert in der Beispielwertspalte angezeigt.

from fastapi import FastAPI
from pydantic import BaseModel
from typing import List


class choco_model(BaseModel):
    Milk: str
    Quantity: int
    Cacao: str
    class Config:
        schema_extra = {
            "example": {
                "Milk": "very lot",
                "Quantity": 10,
                "Cacao": "many",
            }
        }

class Store_model(BaseModel):
    Tokyo: str
    Hokkaido: str
    Osaka: str

    class Config:
        schema_extra = {
            "example": {
                "Tokyo": "shibuya",
                "Hokkaido": "sapporo",
                "Osaka": "nishinari",
            }
        }
#Unterlassung

Es wird wie folgt angezeigt. スクリーンショット 2020-04-05 22.08.35.png

Schließlich

fastapi offizielles Tutorial hat viel Volumen, aber es ist gut, es zu tun.

Recommended Posts

Zur Zeit möchte ich mit FastAPI zeigen, wie man eine solche API in swagger verwendet
Ich möchte vorerst die Desktop-Umgebung von Ubuntu auf Android verwenden (Termux-Version)
Ich möchte die Desktop-Umgebung von Ubuntu vorerst auch unter Android verwenden (Termux-Version - japanische Eingabe in der Desktop-Umgebung).
Ich möchte vorerst Selen bewegen [für Mac]
Ich möchte vorerst eine Docker-Datei erstellen.
[Für diejenigen, die TPU verwenden möchten] Ich habe versucht, die Tensorflow Object Detection API 2 zu verwenden
Vorerst möchte ich jede Datei mit ffmpeg konvertieren !!
So verwenden Sie MkDocs zum ersten Mal
Ich werde versuchen, die Links zusammenzufassen, die vorerst nützlich erscheinen
[Für Anfänger] Anzeigen von Karten und Suchfeldern mithilfe der GoogleMap Javascript-API
Ich habe vorerst versucht, PIFuHD unter Windows auszuführen
Ich wusste nicht, wie ich die [Python] für die Anweisung verwenden sollte
Versuchen Sie vorerst, die Docomo-Chat-Dialog-API zu verwenden
Ich twittere nicht, aber ich möchte tweepy verwenden: Zeigen Sie einfach die Suchergebnisse auf der Konsole an
Ich möchte Shortcut-Übersetzungen wie die DeepL-App auch unter Linux verwenden
Ich möchte Linux auf dem Mac verwenden
Ich möchte den Fortschrittsbalken anzeigen
Ich möchte ein Bild auf Jupyter Notebook mit OpenCV (Mac) anzeigen.
[Hi Py (Teil 1)] Ich möchte vorerst etwas machen, also setze zuerst ein Ziel.
Ich habe in der Bibliothek nach der Verwendung der Gracenote-API gesucht
Python Ich weiß nicht, wie ich den Druckernamen bekomme, den ich normalerweise benutze.
Ich möchte Python in der Umgebung von pyenv + pipenv unter Windows 10 verwenden
Verwenden Sie vorerst Logger mit Python
Führen Sie yolov4 "vorerst" in Windows aus
Ich habe vorerst mit Floydhub gespielt
Ich möchte PyTorch verwenden, um so etwas wie den Text von Japari Park zu generieren
Verwendung der Google Cloud Translation API
Versuchen Sie es vorerst mit LINE Notify
Verwendung der NHK-Programmführer-API
Rückblick auf den Wettbewerb für maschinelles Lernen, an dem ich zum ersten Mal gearbeitet habe
Ich dachte, ich könnte einen netten Gitignore-Editor machen, also habe ich vorerst versucht, so etwas wie MVP zu machen
Ich möchte die Aktivierungsfunktion Mish verwenden
Eine Bibliothek für Datenwissenschaft "Ich möchte das tun" auf dem Jupyter Notebook
Ich möchte den Fortschritt in Python anzeigen!
[Schreiben] Ich möchte die im Programm verwendeten Variablen auf der Serverseite in Echtzeit im Browser anzeigen und aktualisieren.
Verwendung von pip, einem Paketverwaltungssystem, das für die Verwendung von Python unverzichtbar ist
Ich habe versucht zu verstehen, wie Pandas und multiple Co-Linearität unter Verwendung des Affairs-Datensatzes als Thema verwendet werden.
Ich habe versucht, die Syntax zu bewerten, die mit der COTOHA-API zu humorvoll und humorvoll war.
Ich weiß nicht, was HEIC ist. Aber vorerst verwenden wir PNG!
Ich möchte einen Screenshot der Site in Docker mit einer beliebigen Schriftart erstellen
Ich möchte zum ersten Mal eine Django-Studie zur Mittagsdatenbank [EP1] erstellen
Ich möchte zum ersten Mal eine Django-Studie zum Mittagessen [EP1-4] erstellen
Verwenden Sie die Twitter-API, um die von Twitter benötigte Zeit zu verkürzen (erstellen Sie eine Hervorhebungszeitleiste).
[BigQuery] Verwendung der BigQuery-API für die Python-Tabellenerstellung-
Ich habe Python zum ersten Mal auf dem Mac ausprobiert.
Flow Memo, um LOCUST vorerst zu verschieben
Ich habe Python zum ersten Mal mit Heroku ausprobiert
Versuchen Sie vorerst, Arch Linux zu installieren.
Neben Excel jupyter Notebook vorerst
Ich möchte OpenJDK 11 mit Ubuntu Linux 18.04 LTS / 18.10 verwenden
Ich möchte ssh mit dem Befehl expected automatisieren!
Ich möchte R-Datensatz mit Python verwenden
"Stoppen Sie das Festschreiben japanischer Dateien für Git auf Mac> <" Vorerst habe ich ein Skript geschrieben, um nach inkompatiblen japanischen Dateien unter Mac und Linux zu suchen.
Ich möchte den Unterschied zwischen der for-Anweisung in der Python + numpy-Matrix und der Julia for-Anweisung auffangen
So lösen Sie das Problem, dass Videoinhalte unter Firefox für Linux nicht abgespielt werden können
[Selenium] Ich möchte den Browser anzeigen, indem ich den Treiber auf dem Host-Betriebssystem von WSL aus drücke
Ich möchte nicht nach High Para suchen, da es sich um IQ1 handelt (wie man lightgbm_tuner verwendet).