HTTP API 开发工具
简介
这是一个用于构建 RESTful HTTP+JSON API 的有用资源集合。外面有很多优秀的工具和完整的生态系统!不了解有哪些选择可能会让人感到不知所措,所以你可以将此作为参考起点。
欢迎贡献。类别也欢迎建议!
目录
- API 规范语言
- API 规范工具
- API 规范
- API 框架
- API 客户端开发工具
- API 文档
- API 客户端
- API 调试和模拟
- API 设计指南
- API 发布
- API 网关
- API 安全
- API 监控
- API 测试
- API 开发者门户
- JSON 格式标准
- 学习资源
- 博客
- 参考
API 规范语言
API 规范工具
- Swagger Inspector:测试和自动生成任何 API 的 OpenAPI 文档。
- Swagger Editor:用于设计 Swagger 规范的编辑器。
- Swagger 工具和集成:服务于 Swagger 生态系统的库和框架列表。
- VS Code 的 OpenAPI 扩展:为 OpenAPI 规范提供支持的 Visual Studio Code (VS Code) 扩展。
- JetBrains IDE 的 OpenAPI 插件:为 OpenAPI 规范提供支持的 Jetbrains 插件。
- Dredd:验证用 API Blueprint 编写的 API 文档是否与其后端实现一致。
- API Spec Converter:在不同的 API 规范格式之间转换。
- Apimatic:支持包括 Swagger、OAI 格式、RAML、API Blueprint、IO Docs、WADL、Postman Collections 和 HAR 1.4 等在内的 API 描述格式。
- OpenAPI Definition Designer:免费的可视化 OpenAPI3 定义创建和编辑工具。
- Stoplight Studio:使用可视化编辑器创建、原型设计和共享 OpenAPI 描述和 JSON Schema。
- Spectral:定义规则集来检查 YAML 或 JSON,包括 OpenAPI 2.x、3.x 和 AsyncAPI。
- Optic:使用真实流量验证 OpenAPI 3.x 规范的准确性,并自动应用补丁以保持其最新状态。
API 规范
- API Commons:与语言无关的 API 规范/数据模型仓库。
- APIS.guru:OpenAPI(又称 Swagger)2.0 格式的 API 规范目录。
- AnyAPI:公共 API 的文档和测试控制台。
API 框架
Ruby
- rails-api:仅用于 API 应用程序的 Rails。
- pliny:用于编写 Ruby API 的固执己见的模板 Sinatra 应用。
- grape:用于在 Ruby 中创建类 REST API 的固执己见的微框架。
- ActiveModel::Serializer:为 JSON 生成带来约定优于配置的理念。
- rabl:从任何 ruby 对象生成 JSON 和 XML。
- jbuilder:通过类似 Builder 的 DSL 创建 JSON 结构。
- roar:使用表示器解析和渲染 REST API 文档。
Python
- Django REST framework:使构建 Web API 变得容易的工具包。
- Tastypie:Django 的 Web 服务 API 框架。
- restless:Python 的轻量级 REST 迷你框架。
- flask-restful:用于创建 REST API 的简单框架。
- Falcon:Falcon 是一个用于构建 HTTP API、应用后端和更高级框架的低级、高性能 Python 框架。
- Connexion:基于 Flask 的 Python Swagger/OpenAPI 优先框架,具有自动端点验证和 OAuth2 支持。
- apistar:为 Python3 设计的智能 Web API 框架。
- sanic:Sanic 是一个类似 Flask 的 Python 3.5+ Web 服务器,旨在快速运行。
- hug:hug 旨在使开发 Python 驱动的 API 尽可能简单,但不过于简单。
- FastAPI:FastAPI 是一个现代、快速(高性能)的 Web 框架,用于基于标准 Python 类型提示构建 Python 3.6+ 的 API。
Javascript
- hapi.js:Node.js 的 Web 和服务应用框架。
- Restify:专门为 Web 服务 API 设计的 Node.js REST 框架。
- Express:Node.js 的快速、unopinionated、简约的 Web 框架。
- sailsjs:Node.js 的实时 MVC 框架。
- Actionhero:具有集成集群功能和延迟任务的多传输 Node.js API 服务器。
- Baucis:用于构建
- Koa:Node.js 的下一代 Web 框架
- Loopback:Node.js 框架,用于创建 API 并轻松连接到后端数据源。
- Seneca:Node.js 的微服务工具包。
- Feathers:通过 Socket.io 或 Primus 构建 RESTful 和实时 API。
- Deployd:Deployd 是为 Web 和移动应用构建实时 API 的最简单方法
- Nest:一个基于 TypeScript 构建的现代 node.js 框架,用于高效和可扩展的 Web 应用程序
Go
- Go-Json-Rest:在
net/http
之上的薄层,有助于轻松构建 RESTful API - gocrud:Go 库,简化创建、更新和删除任意深度结构化数据 — 使构建 REST 服务快速而简单。
- sleepy:用 Go 编写的 RESTful 微框架。
- restit:Go 微框架,帮助编写 RESTful API 集成测试。
- go-relax:用于构建 RESTful API 的可插拔组件框架。
- go-rest:Go 的小型邪恶 REST 框架。
- go-restful:用于构建 RESTful API 的声明式高度可读框架。
- Goat:Go 的极简 REST API 服务器。
- Resoursea:用于快速编写基于资源的服务的 REST 框架。
- Zerver:Zerver 是一个富有表现力、模块化、功能完备的 RESTful 框架。
- Fiber::zap:Fiber 是一个受 Express 启发的用 Go 编写的 Web 框架,带有 :coffee:。
Scala
- Colossus:Scala 的 I/O 和微服务库。
- Finatra:基于 Twitter-Server 和 Finagle 构建的快速、可测试的 Scala HTTP 服务。
- Play:Java 和 Scala 的高速 Web 框架。
- Scalatra:简单、可访问且免费的 Web 微框架。
- Skinny Micro:用于在 Scala 中构建 servlet 应用程序的微型 Web 框架。
- Spray:基于 Scala 和 Akka 构建 REST/HTTP 集成层的开源工具包。
- Akka HTTP:Akka HTTP 模块在 akka-actor 和 akka-stream 之上实现完整的服务器端和客户端 HTTP 堆栈。
- Swagger Akka HTTP:Swagger-Akka-Http 为 Akka-Http API 带来 Swagger 支持。
Java
- Rest.li:使用类型安全绑定和异步非阻塞IO的REST框架。
- Dropwizard:用于开发运维友好、高性能的RESTful Web服务的框架。
- Jersey:Java中的RESTful Web服务。
- Spring Boot:使用Spring的RESTful Web服务,高性能且配置需求少。
- Metamug Mason:使用JSP标签和SQL创建REST API。在服务器上编辑和热部署REST资源。
Haskell
- Scotty:受Ruby的Sinatra启发的微型Web框架,使用WAI和Warp。
- Spock:另一个用于快速开发的Haskell Web框架。
- Servant:类型级Web DSL。
- Yesod:Haskell RESTful Web框架。
Elixir
Erlang
- Cowboy:用Erlang编写的小型、快速、模块化的HTTP服务器。
- Gen Microservice:这个库解决了用Erlang实现微服务的问题。
- Mochiweb:用于构建轻量级HTTP服务器的Erlang库。
Postgres
MySQL
- xmysql:为任何MySQL数据库生成REST API。
PHP
- API Platform:基于Symfony的API框架,支持JSON-LD、Schema.org和Hydra
- Dingo API:Laravel和Lumen框架的RESTful API包
- Fractal:Fractal为复杂数据输出提供表示和转换层,如在RESTful API中找到的,与JSON配合得很好
- Yii2 Framework:提供一整套工具,简化实现RESTful Web服务API的任务
R
- Plumber:为简单R函数构建API的API框架
C#
- ASP.NET Web APIs:使用C#在任何平台上构建安全的REST API
其他
- Dream Factory:将任何数据库转换为API平台。
API客户端开发工具
通用
- Swagger CodeGen:从Swagger兼容的服务器自动生成客户端库。
- AutoRest:为RESTful Web服务生成客户端库
- OpenAPI Generator:Swagger Codegen的社区分支,根据OpenAPI/Swagger规范自动生成API客户端、服务器存根和文档。
- at-your-service:浏览器上的API可观察性开发工具。从网络流量生成OpenAPI规范和代码。
Ruby
- Net::HTTP:Ruby的HTTP客户端API。
- faraday:简单但灵活的HTTP客户端库,支持多个后端。
- rest-client:Ruby的简单HTTP和REST客户端
- heroics:用于JSON schema表示的API的Ruby HTTP客户端。
- blanket:Ruby API包装器。
- nestful:Ruby HTTP/REST客户端。
Java
- Retrofit:Android和Java的类型安全HTTP客户端。
Javascript
- Restangular:Restangular是一个AngularJS服务,简化了常见的GET、POST、DELETE和UPDATE请求,只需最少的客户端代码
.NET
.Dart
- Frog:Dart Frog建立在shelf和mason之上,受到many tools including remix.run、next.js和express.js等多个工具的启发。
- Serverpod:Serverpod是为Flutter社区构建的下一代应用和Web服务器。它允许你用Dart编写服务器端代码,自动生成API,并以最少的努力连接数据库。Serverpod是开源的,你可以在任何地方托管你的服务器。
API文档
- ReDoc:OpenAPI/Swagger生成的API参考文档。
- Swagger UI:从Swagger兼容的API动态生成文档。
- Slate:为你的API生成的静态站点文档。
- DeveloperHub:文档工具,用于编写、发布、审查、分析和收集个性化面向客户的API文档的反馈。
- prmd:JSON Schema工具:从JSON Schema文档搭建、验证和生成文档。
- Aglio:支持主题的API Blueprint渲染器,输出静态HTML。
- Apiary:协作设计、即时API模拟、生成文档、集成代码示例、调试和自动化测试。
- Readme:API文档托管。
- API Docs:OAS(Swagger)和RAML规范的托管公共API文档。
- Docbox:使用Markdown的REST API文档生成器。
- widdershins:从OpenAPI 3.0 / Swagger 2.0 / AsyncAPI 1.x / Semoasa 0.1.0定义生成REST API文档
- Elements:基于Web组件的OpenAPI 3.x/2.x API文档
API客户端
开源
- Hoppscotch:REST、GraphQL、Websocket、SSE、Socket.IO和MQTT的API客户端
- Hurl:Hurl使处理HTML内容、REST / SOAP / GraphQL API或任何其他基于XML / JSON的API变得容易。
托管
- JSON Generator:生成和托管模拟JSON数据。
桌面
- Postman:桌面API测试工具。
- Firecamp:WebSocket、Rest API和GraphQL的API工作室。
- HTTPie:命令行HTTP客户端。
- Paw:Mac的REST客户端。
- Insomnia:Mac、Windows和Linux的REST API客户端。
- httpy:可编程命令行HTTP客户端。
API调试和模拟
托管
- Beeceptor:REST API的HTTP代理 - 检查和构建模拟API。
- MockBin:生成模拟HTTP端点。
- httpbin:用于测试HTTP请求各种场景的模板化响应。
- Prism:一套用于API模拟和契约测试的包,支持OpenAPI v2(原Swagger)和OpenAPI v3.x,包括模拟服务器和验证代理。
- MockingCloud:只需OpenAPI yaml/json规范文件即可生成完整的模拟REST API。
- Svix Play:轻松检查、测试和调试传入的webhooks。
桌面
- Postman:桌面API客户端和模拟工具。
- Json-Server 零代码的完整假REST API。
- Mockoon:桌面API模拟工具。
API设计指南
- Google API设计指南
- PayPal API风格指南
- Heroku平台HTTP API设计指南
- Haufe API风格指南
- Microsoft REST API指南
- 18F API标准
- The RESTed NARWHL
- 白宫Web API标准
- Zalando REST API指南
- API Stylebook设计指南
- API Stylebook设计主题
- Adidas-group API设计指南
- Azure API设计
API发布
- Mashape: API市场。
API网关
- AWS API Gateway: 流量管理、授权和访问控制、监控以及API版本管理。
- Ambassador API Gateway: Ambassador是一个专门的控制平面,将Kubernetes注释转换为Envoy配置。所有流量都由高性能的Envoy代理直接处理。
- APIGrove: 基于Fuse ESB构建的Java API管理器。
- Apigee127: 基于nodejs的API网关
- Pushpin: 用于请求/响应或流式(长轮询)响应的代理
- Strongloop: 基于nodejs的API网关
- Fusio: 基于PHP的开源API管理平台
- Camel: 使您能够使用各种特定领域语言定义路由和调解规则,包括基于Java的流畅API、Spring或Blueprint XML配置文件以及Scala DSL。
- HAProxy: 可靠、高性能的TCP/HTTP负载均衡器。
- OpenResty: 基于Nginx构建的快速Web应用服务器。
- Tengine: 带有一些高级功能的Nginx发行版。
- Tyk: 开源、快速且可扩展的API网关、门户和API管理平台。
- Vulcand: 由Etcd支持的可编程负载均衡器。
- Zuul: 提供动态路由、监控、弹性、安全性等功能的边缘服务。
- Kong: 开源的API管理层,提供高性能和可靠性。
- Janus: Hello Fresh开发的轻量级Go语言API网关。
- fabio: eBay开发的快速、现代、零配置HTTP(S)路由器,用于部署由consul管理的微服务。
- Traefik: Træfik(发音类似traffic)是用Go编写的现代HTTP反向代理和负载均衡器。
- Oathkeeper: 基于规则集授权HTTP请求的身份和访问代理(IAP)。与ORY Hydra集成。
API安全
- 在线OpenAPI/Swagger文件安全审核: 免费的在线API契约文件静态分析。上传文件并获取报告。
- API安全清单: 设计、测试和发布API时最重要的安全对策清单。
- Ory Hydra: 用Go编写的带有OpenID Connect的OAuth2服务器。
API Web扫描器
- Cherrybomb: 停止半完成的API规范!Cherrybomb是一个CLI工具,通过验证您的API规范来帮助您避免未定义的用户行为。
API监控
- Runscope: API性能监控。
- Ping-API: 自动化API测试。
- Streamdal: 一个在应用程序代码中嵌入隐私控制的工具,可以在个人身份信息进入和离开系统时检测到它,防止它到达不适当的API、数据库、数据流或管道。
API测试
- Assertible: 在部署后和跨环境持续测试和监控您的API。
- Hurl: Hurl使测试HTML内容、REST / SOAP / GraphQL API或任何其他基于XML / JSON的API变得容易。
- Pyresttest: 基于YAML的REST测试和API微基准测试工具
- OWASP Zaproxy: 一个测试API已知安全漏洞的工具,具有很好的CI集成。
- RestQA: 专注于提供良好开发者体验的微服务API测试工具。
- Optic CI: 在CI管道中测试API的破坏性变更
API开发者门户
- Tyk: 构建在API网关之上的API开发者门户,使开发者更容易使用您的API网关。
- APIMATIC: 立即构建一个API门户,包含SDK、实时代码示例、测试用例、API转换和特定语言的文档和参考 - 专门为您的API定制。
- Optic Docs: 与您的消费者共享经过验证准确的OpenAPI文档。使用Optic,他们可以订阅您的API并在其发生变化时收到通知。
JSON格式标准
学习资源
- REST实践
- Roy Fielding关于REST的论文
- 设计实用RESTful API的最佳实践
- 如何设计REST API
- 自动化API开发
- Nordic APIs
- Undisturbed REST
- 构建你不会讨厌的API
- 不可抗拒的API
- 如何构建API
- API大学
- RESTful Web服务
- RESTful Web API
- 好的API文档的十个要素
- APIsecurity.io每周通讯
- 测试Web API
- Web API设计,第二版
博客
参考
贡献
非常欢迎Pull Requests!
添加新资源时请写一个简短的一句话摘要。
致谢
api-development-tools © 2016+, Yos Riady。根据MIT许可证发布。
由Yos Riady创作和维护,在贡献者(列表)的帮助下。