【发布时间】:2017-09-11 14:08:48
【问题描述】:
使用 django-rest-framework-json-api 我能够创建 API 端点,其工作方式如文档中所述。尝试使用django-rest-swagger 提供 API 文档并不容易。
1:Swagger 使用 JSON API 不支持的media_type = 'application/json'。为了解决这个问题,我创建了第二个渲染类 (renderer_classes),它对 JSON API JSONRenderer 进行子类化并强制使用媒体类型。
现在端点支持application/json 和application/vnd.api+json 并且swagger 很乐意以JSON API 文档结构呈现。注意生成的 curl 请求没有标准的 JSON API 标头。
2:Swagger 与解析器有同样的问题。虽然第 1 期的工作确实有效,但还有一个次要挑战。 Swagger 呈现一个字段名称的平面字典,它不是 JSON API,最终由 DRF 请求。
是否可以大摇大摆地在 JSON API 中解析?目前 Swagger 不适用于 PUT 或 POST。
djangorestframework-jsonapi==2.2.0
djangorestframework==3.5.4
Django==1.11.2
coreapi==2.3.1
python 3.6
【问题讨论】:
-
这听起来像是两个项目之一的错误。
django-rest-swagger会查看模型模式并忽略视图的细节,或者django-rest-framework-json-api没有将其视图模式正确地呈现给文档生成器。或者django-rest-framework甚至没有办法让视图将其模式呈现给文档生成器。无论哪种方式,我都不怀疑有一种方法可以在不修改库的情况下解决它。 -
@ZeusttheUnoobian 我觉得问题出在
django-rest-swagger内,但同意你的 cmets。
标签: django django-swagger django-rest-swagger