Utilisez les docstrings pour décrire vos endpoints :
@app.get("/items/<int:item_id>")defget_item(item_id:int):""" Récupérer un élément unique par ID. Retourne l'élément avec tous ses détails. """returnfetch_item(item_id)
Cette docstring apparaît dans les documents OpenAPI comme la description de l’endpoint.
Ajoutez des descriptions aux paramètres en utilisant Field :
frompydanticimportFieldclassItemFilter(BaseModel):page:int=Field(1,ge=1,description="Numéro de page, commençant à 1")limit:int=Field(10,ge=1,le=100,description="Max d'éléments par page")@app.get("/items")deflist_items(filter:ItemFilter):returnsearch_items(filter)
Les paramètres apparaissent maintenant dans les documents avec des descriptions et des règles de validation.
frompydanticimportBaseModelclassItemOut(BaseModel):"""Un élément du catalogue."""id:intname:str=Field(...,description="Le nom d'affichage de l'élément")price:float=Field(...,description="Prix en USD")@app.get("/items/<int:item_id>",response_model=ItemOut)defget_item(item_id:int):returnfetch_item(item_id)
La docstring du modèle et les descriptions des champs apparaissent dans le schéma de réponse.
Utilisez des arguments de décorateur supplémentaires pour personnaliser les métadonnées OpenAPI :
@app.get("/items",summary="Lister tous les éléments",tags=["items"])deflist_items():"""Obtenez une liste paginée de tous les éléments du catalogue."""returnfetch_all_items()
Le résumé est court ; la docstring fournit le détail. Les tags organisent les endpoints dans l’interface utilisateur.
Utilisez les tags pour organiser les endpoints connexes :
@app.get("/items",tags=["items"])deflist_items():"""Lister les éléments."""returnfetch_all_items()@app.post("/items",tags=["items"])defcreate_item(item:ItemCreate):"""Créer un nouvel élément."""returncreate_new_item(item)@app.get("/orders",tags=["orders"])deflist_orders():"""Lister les commandes."""returnfetch_all_orders()
Dans l’interface Swagger, les endpoints sont groupés sous leurs tags.
Décrivez quelles erreurs les clients pourraient recevoir :
fromwerkzeug.exceptionsimportNotFound@app.get("/items/<int:item_id>")defget_item(item_id:int):""" Récupérer un élément par ID. Lève : 404 : Élément non trouvé """item=fetch_item(item_id)ifnotitem:raiseNotFound("Item not found")returnitem
Documentez vos cas d’erreur pour que les clients sachent à quoi s’attendre.
Marquez les endpoints qui nécessitent une authentification :
@app.get("/me")defget_current_user(authorization:str=Header(...)):""" Obtenez le profil de l'utilisateur actuel. Nécessite : Jeton Bearer dans l'en-tête Authorization """user=verify_token(authorization)returnuser
L’en-tête Authorization apparaît dans les documents comme requis.
Comment personnaliser la documentation de l’API¶
Flask-Jeroboam génère la documentation OpenAPI automatiquement, mais vous pouvez la personnaliser selon vos besoins.
Ajouter des descriptions¶
Utilisez les docstrings pour décrire vos endpoints :
Cette docstring apparaît dans les documents OpenAPI comme la description de l’endpoint.
Documenter les paramètres¶
Ajoutez des descriptions aux paramètres en utilisant Field :
Les paramètres apparaissent maintenant dans les documents avec des descriptions et des règles de validation.
Descriptions de réponse¶
Documentez ce que votre réponse contient :
La docstring du modèle et les descriptions des champs apparaissent dans le schéma de réponse.
Personnaliser les endpoints¶
Utilisez des arguments de décorateur supplémentaires pour personnaliser les métadonnées OpenAPI :
Le résumé est court ; la docstring fournit le détail. Les tags organisent les endpoints dans l’interface utilisateur.
Grouper les endpoints avec des tags¶
Utilisez les tags pour organiser les endpoints connexes :
Dans l’interface Swagger, les endpoints sont groupés sous leurs tags.
Masquer les endpoints des documents¶
Certains endpoints pourraient ne pas être publics. Excluez-les :
Les endpoints sont inclus par défaut. Pour en masquer un, utilisez la configuration OpenAPI.
Documenter les erreurs¶
Décrivez quelles erreurs les clients pourraient recevoir :
Documentez vos cas d’erreur pour que les clients sachent à quoi s’attendre.
Authentification dans les documents¶
Marquez les endpoints qui nécessitent une authentification :
L’en-tête Authorization apparaît dans les documents comme requis.
Exemples dans les documents¶
Montrez des requêtes et réponses d’exemple :
L’exemple apparaît dans le schéma OpenAPI, visible dans les documents interactifs.
Déprécier les endpoints¶
Marquez les endpoints qui ne devraient plus être utilisés :
Les endpoints dépréciés sont visuellement marqués dans l’interface Swagger.