用于将“swagger”格式文件转换为“重组文本”的工具

swagger2rst的Python项目详细描述


摇动至.rst转换器

Build Status

为什么?

这些工具是作为我们使用的文档工具包的一部分编写的 在我们每天的工作中。工具包的主要思想是 可以自动创建和更新文档

我们工具包的其他部分是:

安装

使用PyPIPyPI安装

$ pip install swagger2rst

用法示例

命令-swg2rst

必需的参数:-path-到一个swagger文件的路径(“json”或 “yaml”)---format(-f)-输出文件格式。目前只有“RST”是 支持(必需)

选项:---output(-o)-输出文件名(默认:stdout)- --template(-t)-自定义模板文件路径(默认: 模板/基本。)---examples(-e)-自定义示例定义 文件路径(“json”或“yaml”)---inline(-i)-put模式 在路径中定义,否则在单独的Data Structures 章节

示例:

> swg2rst samples/swagger.json -f rst -o /home/user/rst_docs/swagger.rst
> swg2rst samples/swagger.json -f rst -o /home/user/rst_docs/swagger.rst -e /home/user/examples.yaml
> cat docs/swagger.json | swg2rst -f rst -t templates/custom.rst | grep /api

其他增强功能

将gfm描述转换成restructedtext安装pandoc 并使用自定义jinja过滤器md2rst

> sudo apt-get install pandoc
> pip install pypandoc
{{doc.info['description']|md2rst}}

自定义示例

自定义示例在jsonyaml中描述。见samples 目录。

元素

array_items_count

所有数组中的元素数。从1到5。默认值:2。

definitions

通过定义模式将字段绑定到示例。关键是定义 引用路径,值是对象(键是字段名,值是 示例):

json

{"definitions":{"#/definitions/Media":{"likes.count":10,"likes.data.user_name":"liked_user","user.user_name":"my_login"},"#/definitions/MiniProfile":{"user_name":"some_login","full_name":"John Smith"}}}

yaml

definitions:'#/definitions/Media':likes.count:10likes.data.user_name:liked_useruser.user_name:my_login'#/definitions/MiniProfile':user_name:some_loginfull_name:John Smith
paths

按路径将操作字段绑定到示例。应该定义路径,方法, 节(参数或响应)和字段名

json

{"paths":{"/users/{user-id}/relationship":{"post":{"parameters":{"action":"approve"},"responses":{"200.data":{"profile_picture":"picture","full_name":"Kevin Jones","id":10,"user_name":"kevin"}}}}}}

yaml

paths:/users/{user-id}/relationship:post:parameters:action:approveresponses:200.data.profile_picture:picture200.data.full_name:Kevin Jones200.data.id:10200.data.user_name:kevin
types

定义基本类型的示例。

支持的类型:-字符串-日期-日期-时间-数字-整数- 布尔型

json

{"types":{"string":"value","date":"2000-12-01","date-time":"2000-12-01T12:00:00.000Z","number":1.2,"integer":5,"boolean":false}}

yaml

types:string:valuedate:'2000-12-01'date-time:'2000-12-01T12:00:00.000Z'number:1.2integer:5boolean:false

示例优先级

如果一个字段有多个示例,则应用以下优先级规则

  1. 操作示例。
  2. 定义中的示例。如果架构具有嵌套架构,则 优先考虑最具描述性的示例。例如。: Media具有嵌套架构MiniProfile。对于user_namein likesMedia中,将从 #/definitions/Media/likes.data.user_name而不是来自 #/definitions/MiniProfile/user_name
  3. 原始类型的示例。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java获取骆驼路由交换正文()中的无效字符   java如何在Android中创建多语言枚举?   java如何将多个ArrayList<Hashmap>值组合到一个ListView中   后缀运算符Java后增量和预增量行为   SQlite在java中更新列号   Mac OS Yosemite上的java No JRE 1.8虚拟机   java swing在Jlabel中遇到问题   JAVAutil。scanner小java程序打印不可见的换行符?   java从原点到点的路径数   java重写Excel列而不是创建新列   将一行从SQL数据映射到Java对象   spring Application Insights Java SDK+代理不能很好地协同工作   java排序字符串列表?不使用长度函数查找列表的长度   java使用stream collect返回相同的列表,对重复项进行剪切和求和,抛出一个非静态引用   将字母字符与前面没有百分号的Java正则表达式匹配