gpt4 book ai didi

Django Swagger 和 JSON API 呈现问题

转载 作者:行者123 更新时间:2023-12-04 19:32:12 29 4
gpt4 key购买 nike

使用 django-rest-framework-json-api我能够创建按照文档中所述工作的 API 端点。尝试使用 django-rest-swagger 提供 API 文档没那么容易。

1:Swagger 使用 media_type = 'application/json'这在 JSON API 中不受支持。为了解决这个问题,我创建了第二个渲染类( renderer_classes ),它对 JSON API JSONRenderer 进行了子类化。并强制媒体类型。

现在端点支持application/jsonapplication/vnd.api+json并且 swagger 很乐意以 JSON API 文档结构呈现。请注意,生成的 curl 请求没有标准的 JSON API header 。

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

最佳答案

在这里回答我自己的问题,以便其他人可以从学到的东西中获得值(value)。我们从未找到解决此问题的方法,也没有时间为该项目做出贡献。总的来说,该项目似乎也在挣扎,也许是因为像我们这样的人没有做出贡献......

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

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

在编写 JSON API 时不支持开箱即用,但有 sample code让它相对容易地启动和运行。进行此更改后,所有端点都将自动记录。

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

关于Django Swagger 和 JSON API 呈现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46157710/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com