用于访问启用了swagger的api的库
codet-swaggerp的Python项目详细描述
**原始回购:**[digium/swagger py](https://github.com/digium/swagger py.git)
about
----
swagger.py是一个python库,用于使用
`swagger`[codet swaggerpy'(https://github.com/thulbona/codet-swaggerpy.git)定义的api。iBed on the Swagger Home page:
the`swagger
规范<;https://github.com/wordnik/swagger core/wiki>;`fines
如何使用swagger描述api。
swagger.py还支持websocket扩展,允许记录websocket
,并自动生成websocket客户机代码。
python-v
----
python3
usage
-
e来自pypi。
:
$sudo pip install codet swagger py
或使用"setup.py"脚本从源代码安装。
:
$pip install-e。/
这里有一个简单的例子,使用"asterisk rest
接口<;https://wiki.asterisk.org/wiki/display/ast/asterisk+12+ari>;`\uuu
。代码::python
!/usr/bin/env python
import json
=swaggerclient(
"http://localhost:8088/ari/api docs/resources.json"、
"http撸client=http撸client"
对于iter中的msg撸str(lambda:ws.recv(),none):
msg撸json=json.loads(msg撸str)
如果msg撸json['type']='stasisstart':
channel id=msg_json['channel']['id']
ari.channels.answer(channelid=channelid)
ari.channels.play(channelid=channelid,
media='sound:hello world')
ari.channels.continueindialplan(channelid=channelid)
但是。
…灵感来自于最初的[swagger codegen][]项目,模板是使用[mustache][]模板(具体来说,[pystache][])编写的。
有几个重要的区别。
*输入到mustache模板中的模型几乎与swagger的pi资源列表和api声明
模型。不同之处列在[下面](模型)。
*模板本身是完全独立的,使用
逻辑来丰富模型,该逻辑在
与`*.mustache'文件相同的目录中的"translate.py"中指定。
由"swagger_model"模块提供的模型与原始的swagger api资源列表和api
声明几乎相同。这意味着,如果向
文档(如"author"或"copyright"字段)添加额外的自定义元数据,它们将把
带入对象模型。我建议在自定义字段前面加上
下划线,以避免与将来版本的swagger发生冲突。
-在"resource-listing"的"api"数组中的对象包含一个
字段"api-declaration",这是从
引用的api文档中处理的结果。
-api-declaration
-添加了一个"file"字段,引用了原始的`.json`
文件。
development
——
使用"sphinx<;http://sphinx doc.org/>;`` uu"来记录代码,它允许'intellij idea<;http://confluence.jetbrains.net/display/pyh/>;``uu
更好地推断自动完成的类型。
修正安装(和使用)
`virtualenv<;http://www.virtualenv.org/>;` `.
:
$sudo pip install virtualenv
$mkdir-p~/virtualenv
$virtualenv~/virtualenv/swagger
$。~/virtualenv/swagger/bin/activate
`setuptools<;http://pypi.python.org/pypi/setuptools>;``用于
构建。` nose<;http://nose.readthedocs.org/en/latest/>;``用于单元测试,并将'coverage
<;http://nedbatchelder.com/code/coverage/>;``插件安装到生成的代码覆盖率报告中。传递``--with coverage``以生成
代码覆盖率报告。报告的HTML版本放在
``cover/index.html```封面/index.html``.
:
:
>$./setup.py develp prep开发(安装dep、发射器等)
$./setup.py test运行单元测试
$./setup.py bdist _egg;;build distributable
:许可证
:版权所有(c)2013,digium,digium,inc.2013,digium,inc.2013,digium,inc.2013,digium全部保留权利。
swagger.py使用"bsd 3-clause"授权
license<;http://opensource.org/licenses/bsd-3-clause>;``uu。