REST

Awesome REST Awesome

关于RESTful API架构,开发,测试和性能的重要资源的协作列表. 随时为这个持续不断的清单做出贡献.

Design

Standards

  • JSON API -在JSON中构建API的标准.
  • RAML -描述RESTful API的简单方法.
  • JSend -简单的规范,它规定了应如何格式化来自Web服务器的JSON响应的一些规则.
  • OData -开放协议,允许创建和使用可查询和可互操作的RESTful API. 非常复杂.
  • HAL -简单的格式,提供了一种一致且简单的方法来在API中的资源之间建立超链接(请参阅: HATEOAS).
  • JSON-LD -描述JSON(W3C)中的链接数据和超媒体关系的标准.
  • Hydra -超媒体驱动的Web API(W3C)的词汇表.
  • Schema.org -描述通用数据模型的模式集合.
  • OpenAPI -OpenAPI规范(以前称为Swagger规范)是世界上最流行的用于定义Restful API的描述格式.

Clients

PHP Clients

  • Guzzle -使用RESTful Web服务的HTTP客户端和框架.
  • Buzz -另一个轻量级的HTTP客户端.
  • unirest for PHP -简化的轻量级HTTP客户端库.

JavaScript Clients

  • restangular -AngularJS服务,可正确轻松地处理REST API.
  • restful.js -JS客户端,用于与服务器端RESTful资源进行交互.
  • traverson -用于Node.js和浏览器的Hypermedia API / HATEOAS客户端
  • raml-client-generator -为js生成静态客户端库.

Node.js Clients

Ruby Clients

  • RESTClient -Ruby的简单HTTP和REST客户端,受用于指定操作的微框架语法的启发.
  • Spyke -以类似ActiveRecord的方式与REST服务进行交互.
  • excon -可用,快速,简单的Ruby HTTP 1.1. 它可以作为一般的HTTP客户端使用,特别适合在API客户端中使用.
  • httparty -使HTTP再次有趣!
  • Net::HTTP -Net :: HTTP提供了一个丰富的库,可用于构建HTTP用户代理.
  • raml-ruby-client-generator -从RAML文件自动生成API客户端.

Go Clients

  • gopencils -小型且简单的程序包,可轻松使用REST API.
  • resty -受Ruby rest-client启发的Go的简单HTTP和REST客户端.

Servers

Directly On Top Of A RMDB

  • postgrest -直接从现有PostgreSQL数据库提供完全RESTful API.
  • MySQL HTTP plugin -适用于任何MySQL数据库的简单的类似REST的/ CRUD服务器.
  • pREST -使用Go编写的任何现有PostgreSQL数据库中的完全RESTful API.

Node.js

  • node-restify -专门用于REST API的框架.
  • Sails.js -Node.js Web框架嵌入命令以自动生成REST API.
  • mers -将Mongoose查找器公开为RESTful API的快速服务.
  • Baucis -根据您的Mongoose实体构建可扩展的REST API.
  • flatiron/resourceful -JavaScript的同构资源引擎.
  • loopback -强大的Node.js框架,用于创建API并轻松连接到后端数据源.
  • Feathers -是一个实时的微服务Web框架,可让您通过RESTful资源,套接字和灵活的插件来控制数据.
  • Expressa -Express中间件,可使用简单的管理员编辑器和权限模型从JSON模式创建API.
  • rest-hapi -基于支持关系数据的猫鼬模型生成RESTful API.
  • Nestjsx/crud -使用NestJS和TypeORM为RESTful API生成CRUD控制器和服务.

PHP

  • Microrest -在任何关系数据库之上提供REST API的微型Web应用程序.
  • Drest -用于将Doctrine实体公开为REST资源端点的库.
  • Restler -轻量级框架,可将PHP方法公开为RESTful Web API.
  • HAL -超文本应用程序语言(HAL)构建器库.
  • Apigility -使用Zend Framework 2构建的API构建器.
  • phprest -适用于PHP的专用REST微框架.
  • Hateoas -PHP库,用于支持实现HATEOAS REST Web服务的表示形式.
  • Fusio -开源API管理平台.

Symfony2

Python

  • Django REST framework -功能强大且灵活的工具包,可轻松构建Web API.
  • django-tastypie -为Django应用创建美味的API.
  • flask-restful -Flask扩展,增加了对快速构建REST API的支持.
  • flask-restless -Flask扩展,用于为使用SQLAlchemy(或Flask-SQLAlchemy)定义的数据库模型生成ReSTful API.
  • hug -轻巧快速的API框架.
  • sandman -用于现有数据库驱动系统的自动化REST API.
  • restless -与框架无关的REST框架,基于从DeliciousPie汲取的经验教训.
  • savory-pie -REST API构建库(Django等).
  • Python Eve - Eve is an open source Python REST API framework designed for human beings. It allows to effortlessly build and deploy highly customizable, fully featured RESTful Web Services.
  • Ramses -通过在运行时从文件中生成可用于生产的API,使RAML文件可执行.
  • Flask-Potion -Flask-Potion是功能强大的Flask扩展,用于构建RESTful JSON API. 它还提供了多个客户端,可以更轻松地访问API.
  • apistar -为Python 3设计的智能Web API框架.
  • Falcon -Falcon是一个裸机Python Web API框架,用于构建高性能微服务,应用程序后端和更高级别的框架.

Ruby

  • Grape -在Ruby中创建类似REST的API的自觉的微框架.
  • Rails -RailsGuides:将Rails用于仅API的应用程序.

Go

  • gocrud:转到库以简化创建,更新和删除任意深度结构化数据的过程—使构建REST服务变得快速,容易.
  • go-json-rest -在“ net / http”之上的薄层,可帮助轻松构建RESTful API.
  • sleepy -用Go编写的RESTful微框架.
  • restit -使用微型框架来帮助编写RESTful API集成测试.
  • go-relax - Framework of pluggable components to build RESTful API's.
  • go-rest -Go的小巧的REST框架.
  • go-restful -用于构建静态API的声明性高度可读的框架.
  • Goat -Go中的简约REST API服务器.
  • Resoursea -用于快速编写基于资源的服务的REST框架.
  • Zerver -Zerver是一个表达力强,模块化,功能完善的RESTful框架.

Java

  • RestExpress -基于Netty的高性能,轻量级,无容器,可扩展插件的框架,非常适合微服务架构.
  • Vertx-Web -Vert.x-Web是使用Vert.x(用于在JVM上构建响应式应用程序的工具包)构建Web应用程序的一组构建块.
  • Dropwizard -用于开发对ops友好的高性能RESTful Web服务的框架.

Scala

  • Chaos -用于在Scala中编写REST服务的轻量级框架.

Haskell

  • Rest for Haskell -该软件包允许您在Haskell中创建REST API. 这些API可以在不同的Web框架中运行. 它们还可以用于自动生成文档以及客户端库.

Testing

Querying

  • httpie -命令行HTTP客户端,远比curl开发友好.
  • Postman REST Client -Chrome扩展对于手动测试REST API是必不可少的.
  • resty -可以在管道(bash或zsh)中使用的小命令行REST客户端.
  • jq -命令行JSON处理器,与cURL等命令行HTTP客户端结合使用.
  • HttpMaster -用于测试REST API和服务的GUI工具. 仅Windows操作系统.
  • Http-console -HTTP的命令行界面,可让您*像本地人一样讲HTTP *
  • HTTP Prompt -HTTP提示是一个交互式命令行HTTP客户端,具有自动完成功能和语法突出显示功能,基于HTTPie和hint_toolkit构建.
  • rest-assured -Java DSL,可轻松测试REST服务.
  • Insomnia -跨平台HTTP和GraphQL客户端
  • ExtendsClass -使用基于Web的简单HTTP客户端发出HTTP请求.
  • TestMace -用于API自动化测试的跨平台简单但功能强大的IDE.

Mocking

  • RequestBin -检查和调试您的客户端或第三方API发送的Webhook请求.
  • httpbin -HTTP请求和响应服务-用于HTTP的a / k / a瑞士军刀.
  • FakeRest -修补XMLHttpRequest以伪造REST API客户端.
  • json-server -使用快速原型制作来自夹具文件的REST API.
  • Mocky.io -免费的在线服务,以创建伪造的HTTP响应.
  • Swagger API Mock -基于swagger模式的RESTful API模拟
  • Request Baskets -收集HTTP请求并通过RESTful API或Web UI检查它们的服务.
  • DuckRails -快速,动态地模拟API端点.

Public REST APIs To Use In Tests

Documentation

  • Swagger -REST API的文档/查询Web界面.
  • API doc -RESTful Web API的内联文档.
  • raml2html -从RAML文件生成HTML文档.
  • ReDoc -由OpenAPI / Swagger支持的三面板文档.
  • Slate -使用Middleman的精美且响应迅速的三面板API文档.

API Gateway

  • Kong -由Nginx支持的可扩展,分布式和面向插件的API网关.
  • Tyk API Gateway -使用Go编写的具有分析日志记录的轻量级API网关.
  • API Umbrella -用Lua编写的API管理平台,用于通过Web界面和分析公开Web服务.
  • WSO2 API Management -具有Java编写的具有轻量级网关和API生命周期管理功能的API管理工具.
  • Express Gateway -建立在ExpressJS(Node.js)之上的微服务API网关.
  • KrakenD 带有中间件的超高性能API网关. 用Go语言编写.

SaaS Tools

  • Runscope -自动化的API监控和测试.
  • Ping-API -自动化的API监控和测试.
  • import.io Magic -一键式从任何网站创建REST API.
  • Apiary -协同设计,即时API模拟,生成的文档,集成的代码示例,调试和自动测试.
  • Amazon API Gateway -Amazon API Gateway是一项完全托管的服务,使开发人员可以轻松地创建,发布,维护,监控和保护各种规模的API.
  • Apigee -Apigee是为企业和开发人员提供API技术和服务的领先提供商.
  • 3scale -基于Nginx的API网关,可将内部和外部API服务与3scale的API管理平台集成在一起.
  • Assertible -部署后以及跨环境持续测试和监视您的API.
  • Moesif -用于RESTful和GraphQL的调试,监视和使用情况跟踪的API分析.
  • Beeceptor -HTTP检查,模拟和代理服务. 提供命名端点以创建模拟API端点并模拟响应.

Miscellaneous

  • react-admin -将ReactJS管理GUI添加到任何RESTful API.
  • ng-admin -将AngularJS管理GUI添加到任何RESTful API.
  • swagger-codegen -根据OpenAPI规范(以前称为Swagger规范)自动生成客户端库或服务器存根.
  • Lumber -生成应用程序的管理界面.

License

Creative Commons License

这项工作是根据 Creative Commons Attribution 4.0 International License.