我最近开始使用 drf_spectaulous 和 swagger,我有一个 API 端点,需要包含字段的请求正文,但是我似乎不明白如何在 UI 中显示它。
我的看法:
@extend_schema(
responses={200: TripSerializer},
)
def get(self, request: Request) -> Response:
trip = TripService.get_trip(trip_id=request.data.get("trip_id"))
if trip is None:
return Response(status=status.HTTP_404_NOT_FOUND)
trip_serializer = TripSerializer(trip)
return Response(trip_serializer.data, status=status.HTTP_200_OK)
我的请求正文:
{
"trip_id": "1"
}
我的 swagger UI ps
将给予任何帮助, 谢谢
您可以将其添加到架构中:
@extend_schema(
request=InputSerializer,
responses={200: TripSerializer}
)
如果您还没有InputSerializer,只需创建它:
class InputSerializer(serializers.Serializer):
trip_id = seriarlizer.IntegerField()
我有同样的问题这里。显然,由于 GET 方法没有根据 HTTP 标准的请求正文,drf-spectaulous 无法识别它,你必须在某些设置中强制它