我使用Django和Django-Drf来编写一个宁静的BE。我还使用drf-yasg为我的服务生成swagger方案。不幸的是,drf-yasg还不支持OpenApi 3,而且在可预见的将来也不会支持。有没有一个替代drf-yasg,它确实支持Openapi 3,我可以与Django-Drf一起使用?
pgky5nke1#
Django DRF最近增加了对OpenAPI 3的支持(我想是3.10版),但它缺少drf-yasg所具有的很多功能。即将发布的版本(3.12版)将增加组件支持,但仍然缺少很多功能,比如方便的定制选项。我们发现自己的情况完全一样。经过一番认真的搜索后,我们一无所获,因此创建了一个经过大量修改的DRF OpenAPI 3实现的分支,它正在慢慢接近drf-yasg的功能。https://github.com/tfranzel/drf-spectacular给予看吧。它还在发展中,但已经涵盖了很多案例。欢迎反馈!
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
2条答案
按热度按时间pgky5nke1#
Django DRF最近增加了对OpenAPI 3的支持(我想是3.10版),但它缺少drf-yasg所具有的很多功能。即将发布的版本(3.12版)将增加组件支持,但仍然缺少很多功能,比如方便的定制选项。
我们发现自己的情况完全一样。经过一番认真的搜索后,我们一无所获,因此创建了一个经过大量修改的DRF OpenAPI 3实现的分支,它正在慢慢接近drf-yasg的功能。
https://github.com/tfranzel/drf-spectacular
给予看吧。它还在发展中,但已经涵盖了很多案例。欢迎反馈!
enxuqcxy2#
你可以创建自己的html文件,加载一个支持openAPI3的yaml或json,然后通过Django发布。
您可以在此处找到现成的模板:https://github.com/yousan/swagger-yaml-to-html/blob/master/swagger-yaml-to-html.py
基本openAPI模板:
编写将更改传播到文件中的基本脚本,您就完成了。
您将丢失由DRF或swagger包进行的自动模式更新。但您可以使用此命令生成它们。