8种流行的Python框架用于构建API
使用Python构建强大的API。让我们探索一下如何!
Python是今天最多才多艺的编程语言之一。它因其可读性高、语法不复杂和易于使用而受到欢迎。在过去的几十年中,Python已经被用于多个领域的多个应用程序。它被用于自动化、web开发、数据分析、应用程序开发以及本文的重点——应用程序编程接口(API)。
应用程序用户界面用于通过互联网访问某些信息或功能。例如,您可以编写一个Python程序,使用Twitter API执行可以收集特定标签的推文的功能。API使开发人员更容易使用某些技术来构建使用某些预定义操作的应用程序。它有助于连接各种点。
谢天谢地,有很多Python frameworks,但并不是所有的都是为API设计的。让我们来探索一些流行的可以用来开发API的工具。
Django REST
Django REST是一个基于Python的REST框架,开发人员经常使用它来构建Web API。Rest代表表征性状态转移,用于基于Web的数据通信架构。它使用HTTP在机器之间进行调用。GET、PUT、POST和DELETE是Django REST框架中使用的一些标准方法。
Django REST框架只是使用Django构建REST API的方式,因此它只是一个我们可以使用的工具包。它提供了很多额外的功能。使用pip,您可以在系统中使用一个命令安装Django REST框架。但在安装Django REST之前,您需要在系统上安装Python版本3.5+和Django。
Django REST功能:
- 可浏览的Web API,对开发人员非常有用
- 多种内置身份验证策略
- 支持ORM和非ORM数据源的序列化
- 广泛且良好的文档供参考和学习
- 非常活跃的社区支持
- 得到Red Hat、Mozilla、Heroku等组织的信任
- 支持自动URL路由到Django
- 支持测试、缓存、限流等功能
Flask Restful
Flask Restful是Flask框架的扩展,开发人员使用它快速构建REST API。它以创建微型Web服务而闻名,因为它有一个非常轻量级的模块。它迅速且只需要几行代码来初始化Flask并开始使用它来创建API。
设置简单且鼓励使用最佳实践来构建API。在过去的几年中,Flask添加了许多功能,现在它和一个全栈框架一样出色。它是Web开发人员构建Web应用程序及其API的首选。
Flask Restful功能:
- 非常轻量级且易于安装
- 提供资源的模块,是Flask Restful的构建块。它用于访问多个HTTP方法。
- 配备了字段模块和用于数据格式化的marshal_with()装饰器
- 允许您控制在呈现后在响应中显示哪些输出字段
- 允许您根据数据类型添加自定义字段和输入
- 提供representation()装饰器以支持其他表示形式,如XML、CSV、HTML
Falcon
Falcon是用于构建可靠且高性能的大规模应用程序后端和微服务的Web框架。Falcon使用面向对象和基于类的接口来定义其API资源。它兼容多个服务器和平台,因为它符合WSGI规范。
Falcon采用HTTP和REST架构风格,用于创建清晰的设计。Falcon的座右铭是尽量少做但仍然高效。这个REST框架专注于质量控制。
Falcon的特点:
- 内置服务器和debugger for the development
- 轻量级,设置最小
- 主要用于更快的性能
- 将URI映射到资源是受REST启发的
- 支持路由、HTTP协议处理媒体处理、cookies和URI工具
- 容易与NoSQL集成
- 支持集成单元测试
- 支持安全cookie
- 支持Python 2.7、3.5+并与Pypy兼容
Connexion
Connexion自动处理HTTP请求,基于OpenAPI规范。OpenAPI规范以YAML格式描述。与其他工具不同,其他工具根据Python代码生成规范,而Connexion允许您编写一个OpenAPI规范并映射相关的Python函数的端点。一旦详细描述了REST API,Connexion就确保其正常工作。
Connexion的特点:
- 根据您提供的规范,验证请求和端点。
- 使用OAuth 2处理基于令牌的身份验证
- 支持API版本控制
- 配备Web Swagger Console UI,还可以调用API的端点。
- 自动序列化有效负载
FastAPI
顾名思义,FastAPI是构建API的最快和高性能Python框架之一。它是一个完整的Web框架套件。使用FastAPI,您可以开发代码速度提高200%至300%。FastAPI在Python社区中的受欢迎程度正在显著增长,拥有200多名贡献者和迄今为止的28.6K星标。
FastAPI基于ASGI规范,主要用于构建异步Web应用程序。以下是它的一些特点。
- 基于开放标准-OpenAPI、JSON模式、自动生成客户端代码
- Swagger用户界面,可从浏览器调用和测试API
- 交互式API文档
- 减少40%由代码开发人员错误生成的错误
- 减少代码重复
- 直观的编辑器支持(VSCode/PyCharm),具有自动完成功能
- 配备集成的安全性和身份验证
- 依赖注入系统,自动处理所有依赖项
- 完全兼容Starlette和Pydantic
- 无限支持插件
- 支持使用PyTest进行应用测试
- 支持SQL数据库、NoSQL databases、GraphQL
Hug
Hug是一个非常好的微框架,可以用于构建API、CLI和本地程序包。它允许您创建API一次并在代码的任何地方使用该API。Hug使用Cython进行编译,只在需要时消耗资源,这有助于Hug提供非常高的性能。
您可以使用pip一条命令安装Hug。它是在Python 3上构建HTTP REST API的最干净的方法之一。为了构建API,Hug将版本依赖项和接口与API业务逻辑分离。它提供多个接口,简化开发人员的API开发。
Hug的特点:
- 遵循“写一次,随处使用”的理念
- 通过多个接口公开API逻辑(CLI、HTTP或本地函数)
- 提供hug.test模块,测试API的完整Python堆栈
- 清晰易懂的文档
Eve
Eve是基于Flask和Cerberus构建的。这个Python框架的目标是使API开发简单和快速。它可以轻松创建高度可定制的RESTful Web服务。这个框架主要适用于中型项目。
Eve特点:
- 支持CRUD操作的完整范围
- 支持可自定义的端点,分页,排序,过滤
- 提供高级功能,如身份验证,速率限制,缓存
- 与SQL数据库,MongoDB,Elasticsearch和Neo4js轻松集成
- 开箱即用的数据验证支持
- 支持CORS,跨源资源共享
- 为增强日志记录提供了几个事件
Cornice
Cornice是Pyramid的REST框架,提供了构建和文档化REST-ish Web服务的帮助程序。Pyramid旨在随应用程序扩展。它在可能的情况下自动遵循HTTP specification。
Cornice特点:
- Cornice中的一个路径等于一个服务
- 在验证内容后,如果数据无效,则自动抛出400错误
- 为您的服务添加CORS(跨源资源共享)支持
- 使用Pyramid的访问控制列表(ACL)进行授权
- 对于无效的媒体类型,返回包含所有支持的内容类型的错误消息406 Not Acceptable
- 支持所有路由的URL前缀
- 使用Tox,一个用于自动化测试的Python命令行工具
结论
这是我列出的一些流行的Python框架,用于构建API。我希望您发现这个列表有趣,并开始尝试使用它们。所以,您还在等什么呢?选择任何一个REST框架,开始在Python中构建API。