有没有办法在django rest框架的模式中为post函数定义对象?
我有一个休息api视图:
next((k for k, v in DC.items() if v['ordertxid'] == MATCH), None)
应张贴的数据格式为:
class DocumentView(viewsets.ModelViewSet):
...
queryset = Document.objects.all().order_by('pk')
serializer_class = serializers.DocumentSerializer
pagination_class = LargeResultPagination
permission_classes = (IsAuthenticated,)
authentication_class = (
Token,
)
def perform_create(self, serializer):
serializer.save(user=self.request.user)
如何使用coreapi在架构中描述?
{
"items": ["a", "b", "c"],
"name": "test"
}
所以至少它将在描述中。这当然不是很方便,尤其是在需要发布的JSON中你需要更多的字段,因为描述只是单行的招摇。
最理想的情况是,如果我可以将'items'和'name'字段作为swagger页面中的单独字段。
我用谷歌搜索了,但我找不到答案。我看到的例子是获取参数。那么这里的最佳做法是什么?
答案 0 :(得分:0)
如果将其包装到AutoSchema中应该可以工作
schema = AutoSchema(manual_fields=[
coreapi.Field(
"data",
required=True,
location="body",
description='{"items":[], "name":str}',
schema=coreschema.Object()
),
])
答案 1 :(得分:0)
这个问题已经有很长的时间了,但是如果有人需要,这是您的解决方案,您需要将位置设置为“ form”,因此您的架构将像这样:
manual_fields=[
coreapi.Field(
"data",
required=True,
location="form",
description='{"items":[], "name":str}',
schema=coreschema.Object()
),
])
有关更多说明,请参见Schemas - Django Rest Framework
在这里我提取您需要的部分:
位置
确定信息如何编码到请求中。应该 以下字符串之一:
“路径”
包含在模板化URI中。例如url值为 / products / {product_code} /可以与“路径”字段一起使用, 来处理URL路径(例如/ products / slim-fit-jeans /)中的API输入。
这些字段通常会与 项目网址配置文件。
“查询”
包含为URL查询参数。例如,?search = sale。通常 用于GET请求。
这些字段通常与分页和过滤相对应 视图上的控件。
“表格”
包含在请求正文中,作为JSON对象的单个项或 HTML表单。例如{“ colour”:“ blue”,...}。通常对于POST, PUT和PATCH请求。多个“表单”字段可以包含在 单链接。
这些字段通常将与 视图。
“身体”
包含在完整的请求正文中。通常用于POST,PUT和 PATCH请求。链接上最多只能有一个“ body”字段。可能 不能与“表单”字段一起使用。
这些字段通常与使用 ListSerializer验证请求输入,或通过文件上传 视图。