connexion-api-first应用程序与openapi/swagger和flask

atman-connexion的Python项目详细描述


连接

在https://gitter.im/zalando/connexion加入聊天travis ci build status工作服状态最新版本开发状态python versionslicense

connexion是一个基于openapi规范自动处理http请求的框架。 (以前称为swagger spec)您的api在yaml格式中的描述。连接允许你 编写一个openapi规范,然后将端点映射到python函数;这使得 独一无二,因为许多工具都是基于python代码生成规范的。你可以描述一下 rest api要尽可能详细;然后connexion保证它能像您一样工作 指定。

我们这样建立连接是为了:

  • 简化开发过程
  • 确认对API外观的期望

连接功能:

  • 根据 您的规格
  • 提供一个web扩展控制台ui,以便api的用户可以 拥有实时文档,甚至可以调用api的端点 通过它
  • 处理基于OAuth 2令牌的身份验证
  • 支持API版本控制
  • 支持有效载荷的自动序列化。如果你 规范定义端点返回json,connexion将 自动序列化返回值并设置正确的 在http头中键入内容。

为什么连接

使用connexion,首先编写规范。connexion然后调用您的python 代码,处理从规范到代码的映射。这个 鼓励您编写规范,以便 开发人员可以理解您的api的功能,eve在你写之前 单行代码。

如果多个团队依赖于您的api,则可以使用connexion轻松地向他们发送api文档。这保证了您的api将遵循您编写的规范。这是一个不同于框架(如hug)提供的过程,它在编写代码之后生成规范。基于代码生成规范的一些缺点是,它们往往会缺少详细信息,或者将文档与应用程序的代码逻辑混合在一起。

连接2.0的新功能:

  • 必须通过"options"参数提供应用程序和API选项( 旧样式的选项已被删除)。
  • 必须在"Consumes"中指定表单内容类型才能使用表单数据。
  • 操作 接口已在 抽象操作 类中正式化。
  • 操作 类已重命名为 swagger2operation
  • 数组参数反序列化现在更接近于swagger 2.0规范。 在多次传递查询参数且collectionformat为csv或pipes的情况下,将使用最右边的值。 例如, ?q=1,2,3&q=4,5,6 将导致q=[4,5,6]。 通过将collectionformat设置为 multi ,或者通过导入 decorators.uri\u parsing.alwaysmultiurparser 并将 parser class=alwaysmultiurparser 传递到您的api,旧的行为是可用的。
  • 规范验证程序库已从 swagger spec validator 更改为 openapi spec validator
  • 以前引发的错误 swaggervalidationerror 现在引发 invalidSpecification 异常。 所有规范验证错误都应包装为 invalidSpecification
  • 对nullable/x-nullable、readonly和writeonly/x-writeonly的支持已添加到标准json架构验证器中。
  • 现在可以在api级别(而不是app级别)指定自定义验证器。
  • 增加了对基本身份验证和apikey身份验证的支持
  • 如果定义了不支持的安全性要求,或者x-tokeninfofunc / x-tokeninfourl 丢失,那么connexion现在拒绝请求,而不允许在没有安全检查的情况下进行访问。
  • 不再支持访问connexion.request.user/ flask.request.user ,请改用connexion.context['user']

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

推荐PyPI第三方库


热门话题
java Intellij通过方法中的包查找用法   java中VS代码和打包命名的问题   将java CMS功能集成到具有高度动态内容的网站(Lucene/Mysql/Nosql)的策略   oracle的java类强制转换异常。jdbc。驾驶员OracleConnection   字节码向JVM添加上指令   如何在抽象类中执行java方法?   java是否可以在apache访问日志中排除指定的GET参数?(作者:W7开发环境)   java如何获取已安装音频播放器的列表?   尝试向HS学生展示如何使用Java访问MS数据库   使用正则表达式java对给定行中的特定字符串进行计数   java JOOQ Select查询中的Select计数   方法Java,如何从二维双精度数组中找到特定值?   获取图像URL的java正则表达式   java在切换到新的窗口驱动程序后找不到元素