fastapi 中 swagger response 的 media type 设置
在 fastapi 的 /docs 界面,接口响应的媒体类型可以帮助客户端了解所返回的数据的格式。对于返回图片流的接口,可以通过设置 media_type 参数来声明响应类型。
响应头中的 mediatype
对于返回图片流的接口,不需要显式声明 media_type 参数。响应头中的 content-type 字段会自动包含媒体类型信息,告知客户端响应的数据类型(如 image/jpg)。
自定义 response class 指定 mediatype
如果需要自定义响应的媒体类型,可以使用 response_class 参数。以下是自定义 mycustomresponse 类的示例:
from fastapi import fastapi from fastapi.responses import streamingresponse class mycustomresponse(streamingresponse): media_type = "image/jpeg"
在接口中使用该自定义响应类:
@app.get("/img", response_class=MyCustomResponse) def image(): # 返回图片流的逻辑 return MyCustomResponse(...)
这样一来,在 /docs 页面中,该接口的响应媒体类型将显示为 “image/jpeg”。