swagger 带有Django drf的Openapi 3

tag5nh1u  于 2022-11-06  发布在  Go
关注(0)|答案(2)|浏览(186)

我使用Django和Django-Drf来编写一个宁静的BE。
我还使用drf-yasg为我的服务生成swagger方案。
不幸的是,drf-yasg还不支持OpenApi 3,而且在可预见的将来也不会支持。
有没有一个替代drf-yasg,它确实支持Openapi 3,我可以与Django-Drf一起使用?

pgky5nke

pgky5nke1#

Django DRF最近增加了对OpenAPI 3的支持(我想是3.10版),但它缺少drf-yasg所具有的很多功能。即将发布的版本(3.12版)将增加组件支持,但仍然缺少很多功能,比如方便的定制选项。
我们发现自己的情况完全一样。经过一番认真的搜索后,我们一无所获,因此创建了一个经过大量修改的DRF OpenAPI 3实现的分支,它正在慢慢接近drf-yasg的功能。
https://github.com/tfranzel/drf-spectacular
给予看吧。它还在发展中,但已经涵盖了很多案例。欢迎反馈!

enxuqcxy

enxuqcxy2#

你可以创建自己的html文件,加载一个支持openAPI3的yaml或json,然后通过Django发布。
您可以在此处找到现成的模板:https://github.com/yousan/swagger-yaml-to-html/blob/master/swagger-yaml-to-html.py
基本openAPI模板:

openapi: "3.0.0"
info:
    title: MY-Api
    description: My API
    version: 1.0.0
servers:
paths:

编写将更改传播到文件中的基本脚本,您就完成了。
您将丢失由DRF或swagger包进行的自动模式更新。但您可以使用此命令生成它们。

python manage.py generateschema

相关问题