允许直接从swagger模式构建rest api
djsw_wrapper的Python项目详细描述
#djsw_wrapper
缺少swagger和django工具。
[![PYPI版本](https://badge.fury.io/py/djsw_wrapper.svg)(https://badge.fury.io/py/djsw_wrapper)什么?
虚张声势/openapi是一件了不起的事情。它允许您完全用yaml/json描述您的模式,并且有许多后端,允许您为许多框架和语言生成代码。不幸的是,如果您使用django/drf开发代码,就没有使用swagger作为模式源的选项(但是,后者可以从当前源生成swagger模式)。直到现在!
*获取此包:`pip install djsw_wrapper`
*修改django项目的'settings.py`:
``python
…
'django.contrib.messages'、
'django.contrib.staticfiles'、
'rest\u framework'、
'djsw'u wrapper'、“<;<;添加此
'stubapp.appapps.stubappconfig'
;此:架构资源(本地文件或url、json或yaml)的完整路径
swagger'u schema='/path/to/swaggger/schema'/schema'/path/to/swaggger/schema'
35;这个(可选,但是建议):
swagger-u-module='swagger-u-python-python-module'u-python-module'name'
`````
*为'url.py`:
`````python
````python
```````````````````````````````````````````````````````````````````````````````````````````````````````````(r“^admin/”,admin.site.url)
]
````
*基本上,您现在都准备好了。但是,如果没有任何控制器(django术语中的“视图”),则可以为它们生成代码(需要填充“swagger”模块设置):
``shell
$python manage.py makeswaggerviews
`````
*go!
`` shell
$python manage.py runserver
```
1。模式解析和路由生成
它解析swagger模式并为其中描述的每个路径创建url模式。接下来,每个路径都绑定到相应的视图(swagger术语中的“controller”)。这种界限是怎么发生的?首先,它尝试导入“settings.py”中指定的“swagger_module”模块。如果没有这样的模块或设置,存根处理程序将在运行时自动生成。如果有一个模块,工具将在每个路径定义中查找“x-swagger-router-controller”属性;如果该属性存在并指向上述“swagger”模块中的可调用视图,则会发生绑定。如果没有,则使用存根。请求处理
当请求到达某个端点(`path`)并且有合适的处理程序(`view`)时,验证和序列化将自动进行。例如,如果将“path”的“parameter”指定为“required”,而请求中不存在该参数,则客户端将收到错误消息。如果存在类型不一致(例如,您指定了整数,但客户端发送了字符串),也会发生同样的情况。如果一切正常,则执行适当的处理程序(`view`)(如果没有发生绑定,则执行存根处理程序)。
缺少swagger和django工具。
[![PYPI版本](https://badge.fury.io/py/djsw_wrapper.svg)(https://badge.fury.io/py/djsw_wrapper)什么?
虚张声势/openapi是一件了不起的事情。它允许您完全用yaml/json描述您的模式,并且有许多后端,允许您为许多框架和语言生成代码。不幸的是,如果您使用django/drf开发代码,就没有使用swagger作为模式源的选项(但是,后者可以从当前源生成swagger模式)。直到现在!
*获取此包:`pip install djsw_wrapper`
*修改django项目的'settings.py`:
``python
…
'django.contrib.messages'、
'django.contrib.staticfiles'、
'rest\u framework'、
'djsw'u wrapper'、“<;<;添加此
'stubapp.appapps.stubappconfig'
;此:架构资源(本地文件或url、json或yaml)的完整路径
swagger'u schema='/path/to/swaggger/schema'/schema'/path/to/swaggger/schema'
35;这个(可选,但是建议):
swagger-u-module='swagger-u-python-python-module'u-python-module'name'
`````
*为'url.py`:
`````python
````python
```````````````````````````````````````````````````````````````````````````````````````````````````````````(r“^admin/”,admin.site.url)
]
````
*基本上,您现在都准备好了。但是,如果没有任何控制器(django术语中的“视图”),则可以为它们生成代码(需要填充“swagger”模块设置):
``shell
$python manage.py makeswaggerviews
`````
*go!
`` shell
$python manage.py runserver
```
1。模式解析和路由生成
它解析swagger模式并为其中描述的每个路径创建url模式。接下来,每个路径都绑定到相应的视图(swagger术语中的“controller”)。这种界限是怎么发生的?首先,它尝试导入“settings.py”中指定的“swagger_module”模块。如果没有这样的模块或设置,存根处理程序将在运行时自动生成。如果有一个模块,工具将在每个路径定义中查找“x-swagger-router-controller”属性;如果该属性存在并指向上述“swagger”模块中的可调用视图,则会发生绑定。如果没有,则使用存根。请求处理
当请求到达某个端点(`path`)并且有合适的处理程序(`view`)时,验证和序列化将自动进行。例如,如果将“path”的“parameter”指定为“required”,而请求中不存在该参数,则客户端将收到错误消息。如果存在类型不一致(例如,您指定了整数,但客户端发送了字符串),也会发生同样的情况。如果一切正常,则执行适当的处理程序(`view`)(如果没有发生绑定,则执行存根处理程序)。