Quiero mi respuesta de solicitud de publicación en este formato, estoy usando FastAPI:
{ "message": "", "status": 200, "data": {} }Así que declaro una clase para especificar mi formato de respuesta y envío este modelo en el parámetro response_model. El caso es que en mi caso, la clave de datos es un archivo CSV, por eso en la solicitud posterior tengo esto:
@app.post('/some-path', response_model = ResponseBase) async def some_path(): .... new_df = pd.DataFrame(final_data, columns=header) stream = io.StringIO() new_df.to_csv(stream, index=False) my_data: Response = StreamingResponse( iter([stream.getvalue()]), media_type="text/csv" ) return ResponseBase( message="Some message", status = status.HTTP_200_OK, data = my_data )Clase de modelo de respuesta, debería ser algo como esto:
class ResponseBase(BaseModel): message: str status: data:Pero me pregunto cómo especificar que el estado proviene del módulo de código de estado HTTP y los datos provienen de la clase StreamingResponse.