用于访问启用了swagger的api的库

swaggerp的Python项目详细描述


关于

py是一个用于 Swagger定义的API

招摇本身最好在招摇主页上描述:

Swagger is a specification and complete framework implementation for describing, producing, consuming, and visualizing RESTful web services.

Swagger specification定义 如何使用swagger描述api。

py还支持WebSocket扩展,允许WebSocket 记录并自动生成WebSocket客户端代码

用法

安装pypi的最新版本。

$ sudo pip install swaggerpy

或者使用setup.py脚本从源代码安装。

$ sudo ./setup.py install

api

swagger.py将从启用了swagger的对象模型中动态构建对象模型 restful api。

下面是一个使用Asterisk REST Interface

#!/usr/bin/env pythonimportjsonfromswaggerpy.clientimportSwaggerClientfromswaggerpy.http_clientimportSynchronousHttpClienthttp_client=SynchronousHttpClient()http_client.set_basic_auth('localhost','hey','peekaboo')ari=SwaggerClient("http://localhost:8088/ari/api-docs/resources.json",http_client=http_client)ws=ari.events.eventWebsocket(app='hello')formsg_striniter(lambda:ws.recv(),None):msg_json=json.loads(msg_str)ifmsg_json['type']=='StasisStart':channelId=msg_json['channel']['id']ari.channels.answer(channelId=channelId)ari.channels.play(channelId=channelId,media='sound:hello-world')ari.channels.continueInDialplan(channelId=channelId)

狂妄自大的代码生成

有一个基于胡子的代码生成器的开始,但是 还没有功能。

数据模型

swagger_model模块提供的数据模型几乎是 与原始的swagger api资源列表和api相同 宣言。这意味着,如果向 文档(例如_author_copyright字段)将携带 前进到对象模型。我建议用 下划线,以避免与将来版本的招摇发生冲突。

有一些有意义的区别。

  • 资源列表
  • 已添加filebase_dir字段,引用 原始.json文件。
  • resource_listingapi数组中的对象包含 字段api_declaration,它是 引用的API文档。
  • API声明
  • 已添加一个file字段,引用原始的.json 文件。

开发

代码使用Sphinx进行记录,其中 允许IntelliJ IDEA 以便更好地推断自动完成的类型。

为了保持隔离,我还建议安装(和使用) virtualenv

$ sudo pip install virtualenv
$ mkdir -p ~/virtualenv
$ virtualenv ~/virtualenv/swagger
$ . ~/virtualenv/swagger/bin/activate

Setuptools用于 建筑。^使用{a8} 对于单元测试,将coverage插件安装到 生成代码覆盖率报告。传递--with-coverage以生成 代码覆盖率报告。报告的html版本被放入 cover/index.html

$ ./setup.py develop   # prep for development (install deps, launchers, etc.)
$ ./setup.py nosetests # run unit tests
$ ./setup.py bdist_egg # build distributable

许可证

版权所有(c)2013,Digium,Inc.保留所有权利。

Swagger.py使用BSD 3-Clause License授权

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

推荐PyPI第三方库


热门话题
java为什么这一行是charg=(char)(br.read());被跳过?   java三重DES中的IV在哪里?   java Lombok注释不在Intellij idea下编译   java为什么我不能使用过滤器作为流中的最后一步   sqlite Java编译错误找不到符号方法next()   在Java中解析处理对int来说太大的数字   java摄像头不工作   java是“断言错误”好的做法?   java确定api请求是来自CURL还是POSTMAN?   JavaSpringMVC导航   java使单例模式代码更强大   当Java(解释器)区分大小写时,为什么Java编译器(javac)不区分大小写?   java注释字符串[]oneArr();vs字符串[][]twoArr();公告   java命名查询的利弊   java使用log4jweb在web应用程序中配置Log4j2。罐子   java正则表达式查找以开头和结尾的所有可能出现的文本~   java从字符串执行方法