Added more resources

This commit is contained in:
Francois Zaninotto
2015-05-11 11:15:58 +02:00
parent 141a3708e3
commit a0cf76ebc0

View File

@@ -1,27 +1,39 @@
# Awesome REST
Following the `awesome-*` trend, here is a set of resources related to REST API. Feel free to contribute to this on-going list.
A collaborative list of great resources about RESTful API architecture, development, test, and performance. Feel free to contribute to this on-going list.
## Designing
## Design
* [HTTP API design guide extracted from work on the Heroku Platform API](https://github.com/interagent/http-api-design)
* [Best Practices for Designing a Pragmatic RESTful API](http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api)
* [How to design a REST API?](http://blog.octo.com/en/design-a-rest-api/): a full guide tackling security, pagination, filtering, versioning, partial answers, CORS, etc.
* [Enterprise Integration Using REST](http://martinfowler.com/articles/enterpriseREST.html) by the famous Martin Fowler
* [Haters gonna HATEOAS](http://timelessrepo.com/haters-gonna-hateoas): a clear explanation on what HATEOAS is, and why you should use it.
* [How to GET a cup of coffee](http://www.infoq.com/articles/webber-rest-workflow/)
## Standards
* [RAML](http://raml.org/): a simple and succinct way to describe RESTful API
* [JSON API](http://jsonapi.org/): a standard for building APIs in JSON
## Consuming
## Clients
### PHP
* [Guzzle](http://guzzle.readthedocs.org/en/latest/): HTTP client and framework for consuming RESTful web services
* [Buzz](https://github.com/kriswallsmith/buzz): another lightweight HTTP client
* [unirest for PHP](https://github.com/Mashape/unirest-php): Simplified, lightweight HTTP client library
### JavaScript
### Client-Side JavaScript
* [restangular](https://github.com/mgonto/restangular): AngularJS service to handle REST API properly and easily
* [restful.js](https://github.com/marmelab/restful.js): a JS client for interacting with server-side RESTful resources
### Node.js
* [restler](https://github.com/danwrong/restler): REST client library for node.js
* [unirest for Node.js](https://github.com/Mashape/unirest-nodejs): Simplified, lightweight HTTP client library
### Ruby
* [RESTClient](https://github.com/rest-client/rest-client) - Simple HTTP and REST client for Ruby, inspired by microframework syntax for specifying actions.
@@ -29,16 +41,17 @@ Following the `awesome-*` trend, here is a set of resources related to REST API.
* [excon](https://github.com/excon/excon) - Usable, fast, simple Ruby HTTP 1.1. It works great as a general HTTP(s) client and is particularly well suited to usage in API clients.
### Go
* [gopencils](https://github.com/bndr/gopencils) - Small and simple package to easily consume REST APIs.
## Building
## Servers
### Node.js
* [Baucis](https://github.com/wprl/baucis): build scalable REST API based on your Mongoose entities
* [node-restify](https://github.com/mcavage/node-restify): a framework specifically meant for REST API
* [mers](https://github.com/jspears/mers): an Express service to expose Mongoose finders as RESTful API
* [Sails.js](http://sailsjs.org/): a Node.js Web framework embedding a command to generate automatically a REST API
* [mers](https://github.com/jspears/mers): an Express service to expose Mongoose finders as RESTful API
* [Baucis](https://github.com/wprl/baucis): build scalable REST API based on your Mongoose entities
### PHP
@@ -56,7 +69,7 @@ Following the `awesome-*` trend, here is a set of resources related to REST API.
* [REST APIs with Symfony2: the Right Way](http://williamdurand.fr/2012/08/02/rest-apis-with-symfony2-the-right-way/): a complete guide to build a state-of-the-art REST API with Symfony2 framework
* [FOSRestBundle](https://github.com/FriendsOfSymfony/FOSRestBundle): bundle handling view, routing, error handling, etc. for your REST API
* [stanlemon/rest-bundle](https://github.com/stanlemon/rest-bundle): build a REST API based on Doctrine entities using conventions over configuration
* [Lionframe](http://lakion.com/lionframe): a glu between several community libraries to ease API development
* [lakion/Lionframe](http://lakion.com/lionframe): a glu between several community libraries to ease API development
* [BazingaHateoasBundle](https://github.com/willdurand/BazingaHateoasBundle): integrate the [Hateoas](https://github.com/willdurand/Hateoas) library into a Symfony2 application
* [Symfony REST Edition](https://github.com/gimler/symfony-rest-edition): start with a Symfony2 application with all REST-friendly bundles pre-configured
* [NgAdminGeneratorBundle](https://github.com/marmelab/NgAdminGeneratorBundle): boostrap ng-admin configuration based on `stanlemon/rest-bundle`
@@ -99,7 +112,18 @@ Following the `awesome-*` trend, here is a set of resources related to REST API.
* [FakeRest](https://github.com/marmelab/FakeRest): patch XMLHttpRequest to fake a REST API client-side
* [json-server](https://github.com/typicode/json-server): serve a REST API from fixture files using quick prototyping
## REST based-tools
## Public REST APIs To Use In Tests
* [postgrest](https://github.com/begriffs/postgrest): serve a fully RESTful API directly from an existing PSQL database
* [Marvel Comics API](http://developer.marvel.com/): query characters, stories, events about Marvel superheroes
* [JSON Placeholder](http://jsonplaceholder.typicode.com/): a free online REST service that you can use whenever you need some fake data.
## Documentation
* [Swagger](http://swagger.io/): Documentation/querying web interface for REST APIs
## Miscellaneous
* [postgrest](https://github.com/begriffs/postgrest): serve a fully RESTful API directly from an existing PostgreSQL database
* [MySQL HTTP plugin](http://blog.ulf-wendel.de/2014/mysql-5-7-http-plugin-mysql/): A simple REST-like / CRUD server for any MySQL database
* [ng-admin](https://github.com/marmelab/ng-admin): add an AngularJS admin GUI to any RESTful API
* [import.io Magic](https://magic.import.io/): Create a REST API from any website in one click