У меня есть ViewSet
класс с методом, подобным этому:
@action(methods=["get"], detail=True, url_path="foo")
def foo(self, request: Request, pk: int) -> Response:
limit = request.query_params.get("limit")
if limit is not None:
limit = int(limit)
…
Я бы хотел
- объявите метод, чтобы сгенерированная спецификация OpenAPI документировала этот необязательный параметр,
- в идеале, чтобы мне не приходилось вручную возиться с извлечением переменной и ее преобразованием.
Нечто подобное было бы идеально:
def foo(self, _: Request, pk: int, limit: Optional[int] = None) -> Response:
Но это не работает - limit
просто всегда None
.
Решение для пункта 1 выше - еще немного украсить метод:
@swagger_auto_schema(
manual_parameters=[
openapi.Parameter(
"limit",
openapi.IN_QUERY,
required=False,
type=openapi.TYPE_INTEGER
)
]
)