[PYTHON] Pour le moment en utilisant FastAPI, je veux montrer comment utiliser l'API comme ça dans swagger

Aperçu

Quoi qu'il en soit, pour le moment, définissez la forme de la réponse de l'API sur l'écran swagger de l'API Fast, Articles pour ceux qui veulent voir des exemples de réponses.

J'étais comme ça, mais je n'ai pas trouvé un tel article ou blog, Pour le moment, j'ai parcouru le tutoriel officiel de fastapi. Je l'ai écrit dans l'espoir que cela aiderait quelqu'un avec le même objectif.

supposition

――Supposons que ce type de données soit renvoyé en réponse.

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

-Je suis sûr qu'il existe une autre meilleure façon de l'écrire.

Tout d'abord, définissez la forme de la réponse

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 #Omis. Une image d'écriture de quelque chose qui semble changer le JSON décrit dans la prémisse.

Afficher le modèle défini dans l'exemple de valeur

Spécifiez le modèle que vous souhaitez définir dans response_model au niveau du décorateur. Ensuite, il sera affiché dans l'exemple de valeur de swagger.

#Omission)

app = FastAPI()

@app.get("/api/v1/chocolate/{name}", response_model=Special_choco)
async def making_choco(name: str):
    return #Omis. Une image d'écriture de quelque chose qui semble changer le JSON décrit dans la prémisse.

Comme ça. スクリーンショット 2020-04-05 21.59.48.png

Afficher plus spécifiquement la valeur de l'exemple.

Pour afficher non seulement le type et la structure des données, mais également le type de valeur renvoyée Décrivez les données que vous souhaitez afficher dans la partie définition de la classe Config comme suit. Ensuite, la valeur concrète sera affichée dans la colonne de valeur d'exemple.

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",
            }
        }
#Omission

Il est affiché comme suit. スクリーンショット 2020-04-05 22.08.35.png

finalement

tutoriel officiel fastapi a beaucoup de volume, mais il est bon de le faire.

Recommended Posts

Pour le moment en utilisant FastAPI, je veux montrer comment utiliser l'API comme ça dans swagger
Je souhaite utiliser l'environnement de bureau d'Ubuntu sur Android pour le moment (version Termux)
Je souhaite utiliser l'environnement de bureau d'Ubuntu même sur Android pour le moment (entrée version japonaise de Termux dans l'environnement de bureau)
Je veux déplacer le sélénium pour le moment [pour mac]
Je veux créer un Dockerfile pour le moment.
[Pour ceux qui veulent utiliser TPU] J'ai essayé d'utiliser l'API de détection d'objets Tensorflow 2
Pour le moment, je veux convertir n'importe quel fichier avec ffmpeg !!
Comment utiliser MkDocs pour la première fois
J'essaierai de résumer les liens qui me semblent utiles pour le moment
[Pour les débutants] Comment afficher des cartes et des champs de recherche à l'aide de l'API Javascript GoogleMap
J'ai essayé d'exécuter PIFuHD sur Windows pour le moment
Je ne savais pas comment utiliser l'instruction [python] for
Pour le moment, essayez d'utiliser l'API de dialogue de discussion docomo
Je ne tweet pas, mais je souhaite utiliser tweepy: affichez simplement les résultats de la recherche sur la console
Je souhaite utiliser la traduction de raccourcis comme l'application DeepL même sous Linux
Je veux utiliser Linux sur mac
Je veux afficher la barre de progression
Je souhaite afficher une image sur Jupyter Notebook à l'aide d'OpenCV (mac)
[Salut Py (Partie 1)] Je veux faire quelque chose pour le moment, alors commencez par fixer un objectif.
J'ai recherché dans la bibliothèque l'utilisation de l'API Gracenote
python Je ne sais pas comment obtenir le nom de l'imprimante que j'utilise habituellement.
Je souhaite utiliser Python dans l'environnement de pyenv + pipenv sous Windows 10
Utilisez Logger avec Python pour le moment
Exécutez yolov4 "pour le moment" dans Windows
J'ai joué avec Floydhub pour le moment
Je veux utiliser PyTorch pour générer quelque chose comme les paroles de Japari Park
Comment utiliser l'API Google Cloud Translation
Essayez d'utiliser LINE Notify pour le moment
Comment utiliser l'API du guide des programmes NHK
Retour sur le concours d'apprentissage automatique sur lequel j'ai travaillé pour la première fois
Je pensais que je pouvais créer un bon éditeur gitignore, alors j'ai essayé de faire quelque chose comme MVP pour le moment
Je souhaite utiliser la fonction d'activation Mish
Une bibliothèque pour la science des données "Je veux faire ça" sur le bloc-notes Jupyter
Je veux afficher la progression en Python!
[Ecriture] Je souhaite afficher les variables utilisées dans le programme côté serveur en temps réel sur le navigateur et les mettre à jour.
Comment utiliser pip, un système de gestion de paquets indispensable pour utiliser Python
J'ai essayé de comprendre comment utiliser les pandas et la colinéarité multiple en utilisant l'ensemble de données Affaires comme thème.
J'ai essayé de noter la syntaxe trop humoristique et humoristique en utilisant l'API COTOHA.
Je ne sais pas ce qu'est HEIC. Mais pour le moment, utilisons le PNG!
Je souhaite prendre une capture d'écran du site sur Docker en utilisant n'importe quelle police
Je souhaite créer une base de données de déjeuners [EP1] Django pour la première fois
Je souhaite créer une base de données de déjeuner [EP1-4] Django pour la première fois
Utilisez l'API Twitter pour réduire le temps nécessaire à Twitter (créer une chronologie de mise en évidence (comme))
[BigQuery] Comment utiliser l'API de BigQuery pour Python -Création de table-
J'ai essayé Python sur Mac pour la première fois.
Mémo de flux pour déplacer LOCUST pour le moment
J'ai essayé python pour la première fois avec heroku
Essayez d'installer Arch Linux pour le moment.
À côté d'Excel, le notebook Jupyter pour le moment
Je souhaite utiliser OpenJDK 11 avec Ubuntu Linux 18.04 LTS / 18.10
Je veux automatiser ssh en utilisant la commande expect!
Je veux utiliser le jeu de données R avec python
"Arrêtez de soumettre des fichiers japonais à git sur Mac> <" Pour le moment, j'ai écrit un script pour rechercher des fichiers japonais incompatibles sur Mac et Linux.
Je veux absorber la différence entre l'instruction for sur la matrice Python + numpy et l'instruction Julia for
Comment résoudre le problème que le contenu vidéo ne peut pas être lu sur Firefox pour Linux
[Selenium] Je souhaite afficher le navigateur en appuyant sur le pilote du système d'exploitation hôte à partir de WSL
Je ne veux pas rechercher de para haut parce que c'est IQ1 (comment utiliser lightgbm_tuner)