当前位置: 首页 > 软件库 > Web应用开发 > Web框架 >

swagger-py-codegen

授权协议 Readme
开发语言 Python
所属分类 Web应用开发、 Web框架
软件类型 开源软件
地区 不详
投 递 者 胥康安
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Python RESTful Web Framework Generator

Overview

Swagger Py Codegen is a Python web framework generator, which can help you generate a Python web framework automatically based on a given Swagger Specification doc. Currently, the following languages/frameworks are supported:

Alpha version for now, it may not handle all validation properly. If you found a bug, feel free to contact us.

Install

pip install swagger-py-codegen

Usage

Create all:

swagger_py_codegen --swagger-doc api.yml example-app

Command Options:

-s, --swagger-doc               Swagger doc file.  [required]
-f, --force                     Force overwrite.
-p, --package                   Package name / application name.
-t, --template-dir              Path of your custom templates directory.
--spec, --specification         Generate online specification json response.
--ui                            Generate swagger ui.
--validate                      Validate swagger file.
-tlp, --templates               gen flask/tornado/falcon templates, default flask.
--version                       Show current version.
--help                          Show this message and exit.

Examples:

Generate example-app from api.yml:

Flask Example

$ swagger_py_codegen -s api.yml example-app -p demo
$ tree (flask-demo)
.
|__ api.yml
|__ example-app
   |__ demo
   |  |__ __init__.py
   |  |__ v1
   |     |__ api
   |     |  |__ __init__.py
   |     |  |__ pets.py
   |     |  |__ pets_petId.py
   |     |__ __init__.py
   |     |__ routes.py
   |     |__ schemas.py
   |     |__ validators.py
   |__ requirements.txt

Tornado Example

$ swagger_py_codegen -s api.yml example-app -p demo -tlp=tornado
$ tree (tornado-demo)
.
|__ api.yml
|__ example-app
   |__ demo
   |  |__ __init__.py
   |  |__ core
   |     |__ __init.py
   |  |__ v1
   |     |__ api
   |     |  |__ __init__.py
   |     |  |__ pets.py
   |     |  |__ pets_petId.py
   |     |__ __init__.py
   |     |__ routes.py
   |     |__ schemas.py
   |     |__ validators.py
   |__ requirements.txt

Falcon Example

$ swagger_py_codegen -s api.yml example-app -p demo -tlp=falcon
$ tree (falcon-demo)
.
|__ api.yml
|__ example-app
   |__ demo
   |  |__ __init__.py
   |  |__ v1
   |     |__ api
   |     |  |__ __init__.py
   |     |  |__ pets.py
   |     |  |__ pets_petId.py
   |     |__ __init__.py
   |     |__ routes.py
   |     |__ schemas.py
   |     |__ validators.py
   |__ requirements.txt

Sanic Example

$ swagger_py_codegen -s api.yml example-app -p demo -tlp=sanic
$ tree (sanic-demo)
.
|__ api.yml
|__ example-app
   |__ demo
   |  |__ __init__.py
   |  |__ v1
   |     |__ api
   |     |  |__ __init__.py
   |     |  |__ pets.py
   |     |  |__ pets_petId.py
   |     |__ __init__.py
   |     |__ routes.py
   |     |__ schemas.py
   |     |__ validators.py
   |__ requirements.txt

Run Web Server

Install example-app requirements:

$ cd example-app
$ pip install -r requirements.txt

Start example-app:

$ cd demo
$ python __init__.py

And generate example-app-ui from api.yml with ui:

$ swagger_py_codegen -s api.yml  example-app-ui -p demo-ui --ui --spec

Then you can visit http://127.0.0.1:5000/static/swagger-ui/index.html in a browser.

OAuth2 Scopes Usage

See the wiki

Compatibility

component compatibility
OpenAPI Spec 2.0
Python 2.*, 3.*(Sanic only 3.*)

Authors

See the AUTHORS.

License

MIT

  • swagger 简介 swagger是一组开源项目,其中主要项目及功能如下: 1.Swagger codegen:通过Codegen可以将描述文件生成HTML格式和cwiki形式的接口文档, 同时也能生成多种语言的服务端和客户端代码。支持通过jar包,docker,node等方式在本地化执行生成,也可以在后面SwaggerEditor在线生成 2.Swagger UI:提供了一个可视化的UI页

  • 解决swagger几种报错问题 参考文章: (1)解决swagger几种报错问题 (2)https://www.cnblogs.com/wangxc20181130/p/10186195.html (3)https://www.codeprj.com/blog/9b6dd31.html 备忘一下。

 相关资料
  • Py++ is an object-oriented framework for creating a code generator for the Boost.Python library.

  • py

    py 是为 Erlang 生态系统准备的分布式 Python。该项目有两个主要特性: Python 的简单封装接口,封装了 ErlPort 调用,可方便地进行: 进行模块级调用 获取模块级常量 实例化对象 调用对象方法 获取对象属性 使用方便的包装器调用内置函数和运算符 在分布式环境中运行 Python 的方法,充分利用 Erlang 的优势,包括容错、可伸缩、并发、实时等特性

  • init.py

  • neutron_plugin_base_v2.py Neutron plugin的抽象基础类,是实现plugin的参考和基础,它定义了实现一个neutron plugin所需的基本接口。 包括下面的方法: 属性 Create Delete Read Update port Y Y Y Y ports Y ports_count Y network Y Y Y Y networks Y networ

  • ovs_models_v2.py 定义了继承自model_base.BASEV2的四个类。 NetworkBinding代表虚拟网和物理网的绑定。 TunnelAllocation代表隧道id的分配状态。 TunnelEndpoint代表隧道的一个端点。 VlanAllocation代表物理网上的vlan id的分配状态。 这些模型类供ovs_db_v2.py进行使用。

  • quotasv2.py QuotaSetsController类,继承自wsgi.Controller。 Quotasv2扩展类,继承自extensions.ExtensionDescriptor,提供quotas管理支持。