Django Swagger和JSON API呈现问题

ode*_*den 5 django django-swagger django-rest-swagger

使用django-rest-framework-json-api我能够创建API端点,如文档中所述.尝试使用API​​文档django-rest-swagger并不容易.

1:Swagger使用media_type = 'application/json'JSON API不支持的.为了解决这个问题,我创建了第二个渲染类(renderer_classes),它为JSON API提供子类JSONRenderer并强制使用媒体类型.

现在终点支持application/json并且application/vnd.api+jsonswagger很乐意在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
Run Code Online (Sandbox Code Playgroud)

ode*_*den 1

在这里回答我自己的问题,以便其他人可以从所学到的知识中获得价值。我们从未找到此问题的解决方案,也没有时间为该项目做出贡献。总的来说,这个项目似乎也陷入困境,也许是因为像我们这样的人没有做出贡献......

现在已经出现了一个替代项目drf-yasg,该项目在最初发布时并不存在。drf-yasg相对容易部署并解决了我们所有的问题,所以我们现在已经迁移到这个项目。

因此,如果您正在寻找在 DRF 中创建的 JSON API 端点的 swagger api 文档,那么我建议drf-yasg.

在撰写本文时,JSON API 尚不支持开箱即用,但有示例代码可以相对轻松地启动和运行它。完成此更改后,所有端点都将自动记录。

这个 Github Gist包含我们应用程序的代码,希望在该功能完全开发之前对您有所帮助。