我正在将我的Django 1.11.7迁移到2.x版本。其中一个问题是django-rest-swagger已被弃用,现在应该使用drf-yasg来进行API文档和创建。我需要以创建自定义API的相似方式来做到这一点,以便不会破坏移动设备上的任何内容。
以前是这样的(django-rest-swagger==2.1.1)
这里是在Django 1.11.7和django-rest-swagger==2.1.1中运行良好的旧代码片段:
using swagger_schema.py
https://gist.github.com/axilaris/2f72fef8f30c56d5befe9e31cd76eb50
in url.py:
from rest_framework_swagger.views import get_swagger_view
from myapp.swagger_schema import SwaggerSchemaView
urlpatterns = [
url(r'^swaggerdoc/', SwaggerSchemaView.as_view()),
url(r'^api/v1/general/get_countries$', api.get_countries, name='get_countries'),
in api.py:
@api_view(['POST'])
def get_countries(request):
# ----- YAML below for Swagger -----
"""
description: countries list
parameters:
- name: token
type: string
required: true
location: form
"""
......
return Response(countries_list, status=status.HTTP_200_OK)
我的问题是如何在drf-yasg上实现类似的操作,因为我想迁移这段代码而不会影响移动端。
可能会尝试在最新的稳定版本上进行操作:
djangorestframework==3.9
drf-yasg==1.16.1
company_logo = openapi.Parameter('company_logo', openapi.IN_FORM, type=openapi.TYPE_FILE, required=True)
,然后将其添加到装饰器内的manual_parameters
列表中,如下所示:manual_parameters=[token, company_logo]
。这是相同的事情,只是您必须使用openapi.TYPE_FILE
而不是TYPE_STRING
。 - AArias