我正在使用Django 1.11和Django REST Framework 3.7开发REST API。我安装了Django REST Swagger 2.1来生成文档。
我正在使用基于函数的视图:
from rest_framework.decorators import api_view, permission_classes
@api_view(['POST'])
@permission_classes((permissions.AllowAny,))
def jwt_auth(request, provider, format=None):
"""
View description here
"""
pass
正如您所看到的,我的观点得到了Swagger的认可,它有正确的描述:“在此处查看说明”。
然而:
provider
网址参数的“说明”列为空。如何编写基于函数的视图的URL和POST参数以及响应的文档?
我尝试了YAML Docstrings,但它似乎是针对旧版本(0.3.x)而且它不适用于版本2.x.
答案 0 :(得分:1)
您可以使用DjangoRestFrameWork的Schema。 http://www.django-rest-framework.org/api-guide/schemas/
在您的情况下,您可以尝试以下操作。
from rest_framework.decorators import api_view, permission_classes, schema
@api_view(['POST'])
@permission_classes((permissions.AllowAny,))
@schema(custom_schema)
def jwt_auth(request, provider, format=None):
"""
View description here
"""
pass
自定义架构定义
import coreapi, coreschema
from rest_framework.schemas import AutoSchema, ManualSchema
custom_schema = AutoSchema(manual_fields=[
coreapi.Field("username", required=True, location="form", type="string", description="username here"),
coreapi.Field("password", required=True, location="form", type="string", description="password field"
]
应该做的伎俩。 有关更多详细信息,请访问我在顶部提供的链接。基本的POST和GET参数应该以这种方式工作。
答案 1 :(得分:0)
遵循此github issue,您所说的基于方法的视图似乎无法实现。
但我认为this link可以帮到你。
答案 2 :(得分:0)
使用以下代码
@swagger_auto_schema(method='post', auto_schema=None)
@api_view(['POST'])
@permission_classes((permissions.AllowAny,))
def jwt_auth(request, provider, format=None):
"""
View description here
"""
pass
答案 3 :(得分:0)
我已经解释了这个问题的答案。请点击此 StackOverflow 链接:https://stackoverflow.com/a/67688437/8484740