Ese código de estado será usado en la response y será añadido al esquema OpenAPI.
Detalles Técnicos
También podrías usar from starlette import status.
FastAPI proporciona el mismo starlette.status como fastapi.status solo como una comodidad para ti, el desarrollador. Pero viene directamente de Starlette.
Si tienes una aplicación grande, podrías terminar acumulando varios tags, y querrías asegurarte de siempre usar el mismo tag para operaciones de path relacionadas.
En estos casos, podría tener sentido almacenar los tags en un Enum.
FastAPI lo soporta de la misma manera que con strings simples:
fromfastapiimportFastAPIfrompydanticimportBaseModelapp=FastAPI()classItem(BaseModel):name:strdescription:str|None=Noneprice:floattax:float|None=Nonetags:set[str]=set()@app.post("/items/",summary="Create an item",description="Create an item with all the information, name, description, price, tax and a set of unique tags",)asyncdefcreate_item(item:Item)->Item:returnitem
Como las descripciones tienden a ser largas y cubrir múltiples líneas, puedes declarar la descripción de la operación de path en el docstring de la función y FastAPI lo leerá desde ahí.
Puedes escribir Markdown en el docstring, será interpretado y mostrado correctamente (teniendo en cuenta la indentación del docstring).
fromfastapiimportFastAPIfrompydanticimportBaseModelapp=FastAPI()classItem(BaseModel):name:strdescription:str|None=Noneprice:floattax:float|None=Nonetags:set[str]=set()@app.post("/items/",summary="Create an item")asyncdefcreate_item(item:Item)->Item:""" Create an item with all the information: - **name**: each item must have a name - **description**: a long description - **price**: required - **tax**: if the item doesn't have tax, you can omit this - **tags**: a set of unique tag strings for this item """returnitem
Puedes especificar la descripción de la response con el parámetro response_description:
fromfastapiimportFastAPIfrompydanticimportBaseModelapp=FastAPI()classItem(BaseModel):name:strdescription:str|None=Noneprice:floattax:float|None=Nonetags:set[str]=set()@app.post("/items/",summary="Create an item",response_description="The created item",)asyncdefcreate_item(item:Item)->Item:""" Create an item with all the information: - **name**: each item must have a name - **description**: a long description - **price**: required - **tax**: if the item doesn't have tax, you can omit this - **tags**: a set of unique tag strings for this item """returnitem
Nota
Ten en cuenta que response_description se refiere específicamente a la response, la description se refiere a la operación de path en general.
Consejo
OpenAPI especifica que cada operación de path requiere una descripción de la response.
Así que, si no proporcionas una, FastAPI generará automáticamente una de "Successful response".