规格

specd的Python项目详细描述


specd



command line interface(cli)命令行界面,通过将路径和定义拆分成openapi规范2.0格式的离散文件夹和文件,使swagger 2.0项目更易于维护/>``` bash
$pip install specd——升级
````
<;h1>;specd components<;h1>;


>
>-结构
——
```bash

/><
/>&——定义
/>//<
<&foo.yaml
<
/><
<
<&bar.yaml
<
<&foo
;foo
/><
<
//—"{fooid}
-,get.yaml
-,post.yaml
-,etc…
-,etc…
`````
<;h5>;路径<;/h5>;
规范文件的路径和定义被分解为
单独的目录。"path"目录包含原始规范文件中定义的每个方法的openapi规范。在本例中,api的"get"方法的夸张定义位于示例url"hostname.io/foo/{fooid}/`,位于"path/foo/{fooid}/get.yaml`
<;h5>;definition s<;h5>;
specd的定义用作填充响应字段的模型,请求body字段,以及swagger用户界面中需要对象模型的任何其他内容

-yaml和json规范文件
--
所有规范文件都采用openapi规范2.0格式。下面是与上面的示例目录结构对应的"path"、"definition"和".yaml"规范文件的示例。


on
参数:
-描述:要返回的宠物ID
格式:int32
in:path
名称:foo id
必需:true
类型:integer
响应:
'200':
描述:成功操作
架构:
$ref:'\#在响应返回的定义中引用foo模型:
'400':
描述:提供的条无效
'404':
描述:找不到foo对象
标记:
-foo
`````

foo.yaml`-定义
``yaml
属性:
栏:
$ref:"/定义/bar"
fooid:
格式:int32
类型:整数
数据项:
项:
类型:字符串
类型:数组
名称:
类型:字符串
标题:foo
类型:对象
`````
<;h1>;核心功能部件<;/h1>;

-将规范文件转换为规范:`convert`
--
`convert`将夸张的规范文件作为输入,将
目录作为参数,并创建具有以下

<;h5>;命令选项的规范目录<;/h5>;

格式化输出规范中的文件`yaml``json`或`yaml`


>以获取在<;https://petstore.swagger.io/>;处定义swagger petstore ui的规范文件,执行wget下载specification.json文件,然后执行perform a convert on it
``bash
$wget"http://petstore.swagger.io/v2/swagger.json"
$specd convert./swagger.json~/petstore/
`````
通过将输出目录指定为`~/petstore/`,specd将自动创建此目录(如果尚未退出),并在其中创建一个"specs"目录,其中包含一个"specd.yaml"文件、一个"path"目录和一个"definitions"目录。
``bash

—PetStore
.yaml
[省略子分区以节省空间]
[省略子分区以节省空间]
[省略子目录以节省空间]
它以specd目录
和输出文件作为参数,并从specd目录的路径和定义文件

<;h5>;命令选项<;h5>;

|默认的值
:--------::——规范文件中的名称应转换为"snake_case"或"camelcase""snake"或"camelcase""snake"或"camelcase"

<;h5>;example<;/h5>;

继续使用"convert"命令中的示例,我们可以为招摇的petstore创建一个新的规范文件yaml格式的api,基于我们的specd目录启动一个flask应用程序,让你可以查看和测试你的api。此命令必须在specd目录中运行,才能正常工作。

<;h5>;命令选项<;/h5>;

---————————————————————————————<;br>;如果指定了"none",则specd将从specd目录内的"specd.yaml"文件中检索一个主机名"none";any"str"
-n,`<;br>;`--name`指定api的名称"none"any"str"`|
`-t,--target`指定要显示的目标api端点`none`;用逗号分隔的str`

<;h5>;示例<;/h5>;

``bash
$cd~/petstore/specs
$specd swagger--name="swagger_petstore"
*提供烧瓶应用程序"specd.app"(延迟加载)
*环境:摇摇晃晃
*调试模式:关闭
*在http://127.0.0.1:5000上运行(按ctrl+c退出)

````
只需在从命令行接收到的url上执行一个"ctrl+click",就可以访问请测试您的夸张规格。
<;h1>;其他实用程序命令<;/h1>;

-比较规格:`diff`
--
`diff`接受两个夸张规格文件作为参数,并显示路径和两个
<;h5>;示例</h5>;

`` bash
$specd diff~/swagger.json~/new_generated_spec.yaml
```

-列表定义ns和路径:`ls`
--
`ls`可以在specd目录中运行,以便显示该规范的所有定义和路径

<;h5>;example<;/h5>;

``bash
$cd~/petstore/specs
$specd ls


apireponse
category
order
pet
tag
user


path:

/pet/findbystatus:get
/pet/findbytags:get
/pet/{petid}/uploadimage:post
/pet/{petid}:delete,get,post
/pet:post,put
/store/inventory:get
/store/order/{orderid}:删除,get
/store/order:post
/user/createwitharray:post
/user/createwithlist:post
/user/login:get
/user/logout:get
/user/{username}:删除,get,put
/user:post
````

-linting路径和定义文件:`lint`
--
当使用"convert"将规范扩展文件首次分解为*definition*和*path*目录时,该文件可能包含未向bravado注册的字段和类型。尽管这不会直接影响api规范的功能,但日志记录可能会变得非常混乱,因为每当bravado遇到未注册的字段时,它会抛出一条警告消息。

运行"lint"命令的唯一参数是指定目录的路径。执行时,"lint"将递归遍历specd目录中的每个路径和definition.json/.yaml文件,并删除任何会导致bravado抛出警告的行。

<;h5>;example<;/h5>;

``bash
$specd lint~/petstore/specs
```

-验证specd目录:`validate`
--
`validate`不带参数,并将验证当前工作目录是否是有效的specd目录
``bash
$cd~/petstore/specs
$specd
>;已成功验证。
```






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

推荐PyPI第三方库


热门话题
java如何向xsi:nil元素添加另一个属性?   Java抽象泛型方法,使用具体类型实现通配符   java使用pcap4j截断pcap文件   当我放置字母a、b和c时,java中的异常预期会下降   java设置活动对话框不可取消   接口类型变量上的Java克隆   使用Java或BouncyCastle对CSR(证书签名请求)进行安全解码/读取   java调用SavingsAccount对象上的函数并打印结果   java如何在Android应用程序上显示地图上的兴趣点(POI)并与之交互?   如果在JavaFX中的ResultSet中未找到任何内容,则显示java警报   java我将springboot和@component与@scheduled一起使用,它每12小时锁定一次   ApachePOI如何使用java删除包含字符串的word表的行   java如果对象(x,y)靠近其他对象(x,y)   从未对JMSException调用java JMS CachingConnectionFactory OneException方法   javascript使用java将HTML页面转换为MS word