簡體   English   中英

drf 壯觀未在 swagger ui 中顯示查詢參數

[英]drf spectacular not showing query params in swagger ui

我有以下列表請求 function 的通用 ListAPIView。 這里的類別是一個查詢參數。 我正在嘗試實現 swagger ui 也顯示 swagger ui 文檔中的查詢參數。 如何做到這一點? 我有以下代碼。

@extend_schema(
    parameters=[
        OpenApiParameter(name='category',location=OpenApiParameter.QUERY, description='Category Id', required=False, type=int),
    ],
)
def list(self, request, *args, **kwargs):
    category_id = request.query_params.get('category')
    ....
    return Response(data)

ApiView注釋的正確入口ApiView (此處為ListAPIView )是get方法,而不是list方法。

這是因為get是實際的方法,而list僅被包裝以代理到 mixin。

class ListAPIView(mixins.ListModelMixin, GenericAPIView):
    def get(self, request, *args, **kwargs):
        return self.list(request, *args, **kwargs)

常見問題入口

注釋get方法,自己調用self.list() ,參數就會顯示出來。

我同意 Insa,但您也可以裝飾您的視圖,以避免實現/覆蓋 get 方法只是為了裝飾它。

@extend_schema_view(
    get=extend_schema(
        parameters=[
            OpenApiParameter(name='category', description='Category Id', type=int),
        ]
    )
)
class YourListView(ListAPIView):
...

我刪除了OpenApiParameter位置並需要 arguments,因為它們等於默認值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM