Awesome API
A curated list of awesome resources for design and implement RESTful APIs.
Design
Overview
REST allows us to create services and applications that can be used by any device or client who understands HTTP.
- HTTP API Design Guide by interagent.
- Best Practices for Designing a Pragmatic RESTful API / Spanish version.
- Ideal REST API Design.
- Heroku API Reference.
- API Terms Glossary.
- Learn REST: A RESTful Tutorial.
Status Code
When you are using a REST design you have to provide the HTTP status code that are the more appropriated to respond to the request.
Authentication
JWT
JSON Web Token (JWT) is a compact, URL-safe means of representing claims to be transferred between two parties.
- JWT Draft in IETF.
- JWT.io.
- Cookies vs Tokens.
- Why Meteor doesn't use session cookies.
- 10 Things You Should Know about Tokens.
- Using JSON Web Tokens as API Keys.
Authorization
OAuth
An open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications
Format
- JSON API - Standard for building APIs in JSON.
- RAML - Simple and succinct way to describe RESTful API.
- JSend - Simple specification that lays down some rules for how JSON responses from web servers should be formatted.
- OData - Open protocol to allow the creation and consumption of queryable and interoperable RESTful APIs. Quite complex.
- HAL - Simple format that gives a consistent and easy way to hyperlink between resources in your API (see: HATEOAS).
- JSON-LD - Standard for describing Linked Data and hypermedia relations in JSON (W3C).
- Hydra - Vocabulary for Hypermedia-Driven Web APIs (W3C).
- Schema.org - Collection of schemas describing common data models.
Discover
Need a API for your project? Check in this sites.
Testing
Querying
- httpie - Command line HTTP client, far more dev-friendly than
curl
. - Postman REST Client - Chrome extension essential to test manually REST API.
- resty - Little command line REST client that you can use in pipelines (bash or zsh).
- jq - Command line JSON processor, to use in combination with a command-line HTTP client like cURL.
- HttpMaster - GUI tool for testing REST APIs and services. Windows OS only.
Mocking
- FakeRest - Patch XMLHttpRequest to fake a REST API client-side.
- json-server - Serve a REST API from fixture files using quick prototyping.
- Mocky.io - Free online service to create fake HTTP responses.
- Swagger API Mock - Mock RESTful API based on swagger schema
Public REST APIs To Use In Tests
- ProgrammableWeb - The world's largest API repository.
- Public APIS - Explore The Largest API Directory In The Galaxy.
- Marvel Comics API - Query characters, stories, events about Marvel superheroes.
- JSON Placeholder - Free online REST service that you can use whenever you need some fake data.
Documentation
One of the most important part of your API is have a good documentation and updated with the code.
Free
Services
Logging
Modeling and SaaS
Based in DDD (Domain Driven Development). Generates automatically API's in different languages.
- RAML, RESTful API Modeling Language.
- kimono, generate API from websites.
- import.io, turn web pages into Data.
- swagger.io.
- Runscope - Automated API Monitoring & Testing.
- Apiary - Collaborative design, instant API mock, generated documentation, integrated code samples, debugging and automated testing.
- API Plug – Hassle-free API Generation.
Libraries
Used it for improve your workflow
- Unirest, Lightweight HTTP Request Client Libraries.
- nock, HTTP Server mocking for Node.js.
- Supertest, Super-agent driven library for testing HTTP servers.
- hello.js, A client-side Javascript SDK for authenticating with OAuth2.
Frameworks
Designed specify for build quickly RESTful API's.
Gateways
Manage API infrastructure concerns such as authentication/authorization, rate limiting, scaling, analytics, etc.
Open Source / Self-hosted
REFERENCE: https://github.com/Kikobeats/awesome-api
No comments:
Post a Comment