update lists
This commit is contained in:
322
html/api.html
322
html/api.html
@@ -1,322 +0,0 @@
|
||||
<h1 id="awesome-api-awesome-build-status">Awesome API <a
|
||||
href="https://github.com/sindresorhus/awesome"><img
|
||||
src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg"
|
||||
alt="Awesome" /></a> <a
|
||||
href="https://travis-ci.org/Kikobeats/awesome-api"><img
|
||||
src="https://img.shields.io/travis/Kikobeats/awesome-api/master.svg?style=flat-square"
|
||||
alt="Build Status" /></a></h1>
|
||||
<blockquote>
|
||||
<p>A curated list of awesome resources for design and implement RESTful
|
||||
APIs.</p>
|
||||
</blockquote>
|
||||
<h2 id="design">Design</h2>
|
||||
<h3 id="overview">Overview</h3>
|
||||
<blockquote>
|
||||
<p>REST allows us to create services and applications that can be used
|
||||
by any device or client who understands HTTP.</p>
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li><a
|
||||
href="http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api">Best
|
||||
Practices for Designing a Pragmatic RESTful API</a> [<a
|
||||
href="https://elbauldelprogramador.com/buenas-practicas-para-el-diseno-de-una-api-restful-pragmatica/">spanish
|
||||
version</a>].</li>
|
||||
<li><a
|
||||
href="https://betimdrenica.wordpress.com/2015/03/09/ideal-rest-api-design/">Ideal
|
||||
REST API Design</a>.</li>
|
||||
<li><a
|
||||
href="https://stackoverflow.blog/2020/03/02/best-practices-for-rest-api-design/">StackOverflow
|
||||
best REST API Design</a>.</li>
|
||||
<li><a
|
||||
href="https://devcenter.heroku.com/articles/platform-api-reference">Heroku
|
||||
API Reference</a>.</li>
|
||||
<li><a href="https://github.com/Mashape/apiglossary">API Terms
|
||||
Glossary</a>.</li>
|
||||
<li><a href="https://github.com/interagent/http-api-design">HTTP API
|
||||
Design by Heroku</a>.</li>
|
||||
<li><a href="http://www.restapitutorial.com">Learn REST: A RESTful
|
||||
Tutorial</a>.</li>
|
||||
<li><a href="https://github.com/lambda2/rapis">RAPIS: A REST API
|
||||
Standard for the 21th century</a>.</li>
|
||||
<li><a
|
||||
href="https://github.com/watson-developer-cloud/api-guidelines">IBM
|
||||
Watson REST API Guidelines</a>.</li>
|
||||
<li><a href="https://github.com/Microsoft/api-guidelines">Microsoft REST
|
||||
API Guidelines</a>.</li>
|
||||
<li><a href="http://zalando.github.io/restful-api-guidelines/">Zalando
|
||||
RESTful API and Event Scheme Guidelines</a></li>
|
||||
<li><a
|
||||
href="https://www.gov.uk/guidance/gds-api-technical-and-data-standards">gov.uk
|
||||
API technical and data standards</a></li>
|
||||
<li><a
|
||||
href="https://github.com/stickfigure/blog/wiki/How-to-%28and-how-not-to%29-design-REST-APIs">How
|
||||
to (and how not to) design REST APIs</a></li>
|
||||
</ul>
|
||||
<h3 id="status-code">Status Code</h3>
|
||||
<blockquote>
|
||||
<p>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.</p>
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li><a href="http://www.restapitutorial.com/httpstatuscodes.html">HTTP
|
||||
Status code table in RESTAPITutorial</a>.</li>
|
||||
<li><a href="https://httpstatuses.com/">httpstatuses.com</a></li>
|
||||
<li><a
|
||||
href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">Status
|
||||
code definition in W3C</a>.</li>
|
||||
<li><a href="https://tryhexadecimal.com/guides/http/">HTTP Status Code
|
||||
Guides</a></li>
|
||||
</ul>
|
||||
<h3 id="authentication">Authentication</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/teesloane/Auth-Boss">Auth Boss</a> –
|
||||
Learn about different authentication methodologies on the web.</li>
|
||||
<li><a
|
||||
href="https://www.owasp.org/index.php/Authentication_Cheat_Sheet">Authentication
|
||||
Cheat Sheet</a>.</li>
|
||||
<li><a
|
||||
href="https://stormpath.com/blog/the-problem-with-api-authentication-in-express/">The
|
||||
Problem With API Authentication in Express</a>.</li>
|
||||
<li><a
|
||||
href="https://blog.risingstack.com/web-authentication-methods-explained/">Web
|
||||
Authentication Methods Explained</a>.</li>
|
||||
</ul>
|
||||
<h4 id="jwt">JWT</h4>
|
||||
<blockquote>
|
||||
<p>JSON Web Token (JWT) is a compact, URL-safe means of representing
|
||||
claims to be transferred between two parties.</p>
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://auth0.com/blog/2014/01/27/ten-things-you-should-know-about-tokens-and-cookies/">10
|
||||
Things You Should Know about Tokens</a>.</li>
|
||||
<li><a
|
||||
href="https://auth0.com/blog/2014/01/07/angularjs-authentication-with-cookies-vs-token/">Cookies
|
||||
vs Tokens</a>.</li>
|
||||
<li><a
|
||||
href="https://tools.ietf.org/html/draft-ietf-oauth-json-web-token">JWT
|
||||
Draft in IETF</a>.</li>
|
||||
<li><a href="http://jwt.io/">JWT.io</a>.</li>
|
||||
<li><a
|
||||
href="https://auth0.com/blog/2014/12/02/using-json-web-tokens-as-api-keys/">Using
|
||||
JSON Web Tokens as API Keys</a>.</li>
|
||||
<li><a href="http://info.meteor.com/blog/session-cookies">Why Meteor
|
||||
doesn’t use session cookies</a>.</li>
|
||||
<li><a
|
||||
href="https://www.moesif.com/blog/technical/restful-apis/Authorization-on-RESTful-APIs/">Guide
|
||||
on API authentication and authorization</a>.</li>
|
||||
</ul>
|
||||
<h3 id="authorization">Authorization</h3>
|
||||
<h4 id="oauth">OAuth</h4>
|
||||
<blockquote>
|
||||
<p>An open protocol to allow secure authorization in a simple and
|
||||
standard method from web, mobile and desktop applications</p>
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://github.com/Kong/mashape-oauth/blob/master/FLOWS.md">The
|
||||
OAuth Bible by Mashape</a>.</li>
|
||||
</ul>
|
||||
<h2 id="caching">Caching</h2>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://jakearchibald.com/2016/caching-best-practices/">Caching
|
||||
best practices & max-age gotchas</a>.</li>
|
||||
<li><a
|
||||
href="https://devcenter.heroku.com/articles/increasing-application-performance-with-http-cache-headers">Increasing
|
||||
Application Performance with HTTP Cache Headers</a>.</li>
|
||||
<li><a
|
||||
href="https://support.cloudflare.com/hc/en-us/articles/200504045-Using-Cloudflare-with-your-API">Using
|
||||
Cloudflare with your API</a>.</li>
|
||||
</ul>
|
||||
<h2 id="security">Security</h2>
|
||||
<ul>
|
||||
<li><a href="https://www.npmjs.com/package/helmet">Helmet, help secure
|
||||
Express/Connect apps with various HTTP headers</a>.</li>
|
||||
<li><a
|
||||
href="https://github.com/GitGuardian/APISecurityBestPractices">APISecurityBestPractices</a>.</li>
|
||||
<li><a href="https://nodesecurity.io/">Node Security Project</a>.</li>
|
||||
<li><a
|
||||
href="https://blog.risingstack.com/node-js-security-checklist/">Node.js
|
||||
Security Checklist</a>.</li>
|
||||
</ul>
|
||||
<h2 id="format">Format</h2>
|
||||
<ul>
|
||||
<li><a href="http://stateless.co/hal_specification.html">HAL</a> –
|
||||
Simple format that gives a consistent and easy way to hyperlink between
|
||||
resources in your API (see: <a href="#hateoas">HATEOAS</a>).</li>
|
||||
<li><a href="http://www.hydra-cg.com/">Hydra</a> – Vocabulary for
|
||||
Hypermedia-Driven Web APIs (W3C).</li>
|
||||
<li><a href="http://labs.omniti.com/labs/jsend">JSend</a> – Simple
|
||||
specification that lays down some rules for how JSON responses from web
|
||||
servers should be formatted.</li>
|
||||
<li><a href="http://jsonapi.org/">JSON API</a> – Standard for building
|
||||
APIs in JSON.</li>
|
||||
<li><a href="http://json-ld.org/">JSON-LD</a> – Standard for describing
|
||||
Linked Data and hypermedia relations in JSON (W3C).</li>
|
||||
<li><a href="http://www.odata.org/">OData</a> – Open protocol to allow
|
||||
the creation and consumption of queryable and interoperable RESTful
|
||||
APIs. Quite complex.</li>
|
||||
<li><a href="http://raml.org/">RAML</a> – Simple and succinct way to
|
||||
describe RESTful API.</li>
|
||||
<li><a href="http://schema.org">Schema.org</a> – Collection of schemas
|
||||
describing common data models.</li>
|
||||
</ul>
|
||||
<h2 id="discover">Discover</h2>
|
||||
<blockquote>
|
||||
<p>Need a API for your projects?</p>
|
||||
</blockquote>
|
||||
<h3 id="curated-list">Curated list</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/Abhishaker17/Awesome-APIs">Awesome APIs
|
||||
Directory</a> – A public list of APIs from round the web.</li>
|
||||
<li><a href="https://github.com/toddmotto/public-apis">public apis</a> –
|
||||
A collective list of public JSON APIs for use in web development.</li>
|
||||
</ul>
|
||||
<h3 id="directory">Directory</h3>
|
||||
<ul>
|
||||
<li><a href="http://apis.io">apis.io</a> – API Search service to help
|
||||
discover APIs on the web.</li>
|
||||
<li><a
|
||||
href="https://www.programmableweb.com/apis/directory">ProgrammableWeb</a>.</li>
|
||||
</ul>
|
||||
<h2 id="testing">Testing</h2>
|
||||
<h3 id="querying">Querying</h3>
|
||||
<ul>
|
||||
<li><a href="https://firecamp.io">Firecamp</a> – Protocol agnostic API
|
||||
testing client which help you test and manage RestAPIs, GraphQL,
|
||||
Websocket and many more.</li>
|
||||
<li><a href="https://github.com/jkbrzt/httpie">httpie</a> – Command line
|
||||
HTTP client, far more dev-friendly than <code>curl</code>.</li>
|
||||
<li><a href="http://www.httpmaster.net">HttpMaster</a> – GUI tool for
|
||||
testing REST APIs and services. Windows OS only.</li>
|
||||
<li><a href="https://github.com/stedolan/jq">jq</a> – Command line JSON
|
||||
processor, to use in combination with a command-line HTTP client like
|
||||
cURL.</li>
|
||||
<li><a href="https://insomnia.rest/">Insomina</a> – A Fancy HTTP REST
|
||||
Client.</li>
|
||||
<li><a href="https://github.com/micha/resty">resty</a> – Little command
|
||||
line REST client that you can use in pipelines (bash or zsh).</li>
|
||||
<li><a href="https://testmace.com">TestMace</a> – A modern powerful
|
||||
crossplatform tool for working with API and creating automated API
|
||||
tests.</li>
|
||||
</ul>
|
||||
<h3 id="mocking">Mocking</h3>
|
||||
<ul>
|
||||
<li><p><a href="https://beeceptor.com">Beeceptor</a> - Beeceptor helps
|
||||
intercepting API calls and mocking them selectively. Creates an endpoint
|
||||
for wrapping original API and routes requests.</p></li>
|
||||
<li><p><a href="https://github.com/marmelab/FakeRest">FakeRest</a> –
|
||||
Patch XMLHttpRequest to fake a REST API client-side.</p></li>
|
||||
<li><p><a href="http://jsonplaceholder.typicode.com/">JSON
|
||||
Placeholder</a> – Free online REST service that you can use whenever you
|
||||
need some fake data.</p></li>
|
||||
<li><p><a href="https://github.com/typicode/json-server">json-server</a>
|
||||
– Get a full fake REST API with zero coding in less than 30
|
||||
seconds.</p></li>
|
||||
<li><p><a href="http://www.mocky.io/">Mocky.io</a> – Free online service
|
||||
to create fake HTTP responses.</p></li>
|
||||
<li><p><a href="https://fakeql.com/">FakeQL</a> – Mainly focused on
|
||||
GraphQL, but can mock RESTful APIs, as well.</p></li>
|
||||
<li><p><a href="https://pipl.ir">PIPL API</a> – Free and public API that
|
||||
generates random and fake people’s data in JSON</p></li>
|
||||
<li><p><a href="https://apimocha.com">API Mocha</a> - Free online
|
||||
service providing fake REST API endpoints, create customizable responses
|
||||
and download rules as a Postman collection. ### Response</p></li>
|
||||
<li><p><a href="https://httpstat.us">httpstat.us</a> – A super simple
|
||||
service for generating different HTTP codes.</p></li>
|
||||
<li><p><a href="https://httpbin.org">httpbin</a> – httpbin(1): HTTP
|
||||
Request & Response Service.</p></li>
|
||||
<li><p><a href="https://badssl.com">badssl</a> – Testing clients against
|
||||
bad SSL configs.</p></li>
|
||||
</ul>
|
||||
<h2 id="documentation">Documentation</h2>
|
||||
<blockquote>
|
||||
<p>One of the most important part of your API is have a good
|
||||
documentation and updated with the code.</p>
|
||||
</blockquote>
|
||||
<h3 id="free">Free</h3>
|
||||
<ul>
|
||||
<li><a href="https://github.com/tmcw/docbox">docbox</a>.</li>
|
||||
<li><a href="https://github.com/tripit/slate">slate</a>.</li>
|
||||
<li><a href="https://github.com/mpociot/whiteboard">whiteboard</a>.</li>
|
||||
</ul>
|
||||
<h3 id="services">Services</h3>
|
||||
<ul>
|
||||
<li><a href="https://docs.rapidapi.com/docs">RapidAPI</a>.</li>
|
||||
<li><a href="https://readme.io/">Readme.io</a>.</li>
|
||||
<li><a href="https://www.gitbook.com/">GitBook</a>.</li>
|
||||
</ul>
|
||||
<h2 id="logging">Logging</h2>
|
||||
<ul>
|
||||
<li><a href="https://pm2.keymetrics.io">PM2 by keymetrics</a>.</li>
|
||||
<li><a href="https://github.com/expressjs/morgan">morgan for
|
||||
expressjs</a>.</li>
|
||||
<li><a href="https://www.moesif.com/features/api-logs">Moesif API
|
||||
Analytics</a>. Log and Understand API Traffic.</li>
|
||||
</ul>
|
||||
<h2 id="modeling-and-saas">Modeling and SaaS</h2>
|
||||
<blockquote>
|
||||
<p>Based in DDD (Domain Driven Development). Generates automatically
|
||||
API’s in different languages.</p>
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li><a
|
||||
href="https://www.producthunt.com/alternatives/api-plug">Alteranatives
|
||||
to API Plug</a> – 9 alternative and related products to api plug.</li>
|
||||
<li><a href="https://apiary.io/">Apiary</a> – Collaborative design,
|
||||
instant API mock, generated documentation, integrated code samples,
|
||||
debugging and automated testing.</li>
|
||||
<li><a href="https://wrapapi.com">wrapAPI, Build an API on top of any
|
||||
website</a>.</li>
|
||||
<li><a href="https://www.import.io/">import.io, turn web pages into
|
||||
Data</a>.</li>
|
||||
<li><a href="http://raml.org">RAML, RESTful API Modeling
|
||||
Language</a>.</li>
|
||||
<li><a href="https://www.runscope.com/">Runscope</a> – Automated API
|
||||
Monitoring & Testing.</li>
|
||||
<li><a href="http://swagger.io">swagger.io</a>.</li>
|
||||
</ul>
|
||||
<h2 id="libraries">Libraries</h2>
|
||||
<blockquote>
|
||||
<p>Used it to improve your workflow</p>
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li><a href="http://adodson.com/hello.js/#hellojs">hello.js</a> – A
|
||||
client-side Javascript SDK for authenticating with OAuth2.</li>
|
||||
<li><a href="https://www.npmjs.com/package/nock">nock</a> – HTTP Server
|
||||
mocking for Node.js</li>
|
||||
<li><a
|
||||
href="https://github.com/tj/node-ratelimiter">node-ratelimiter</a> –
|
||||
Rate limiter for Node.js backed by Redis.</li>
|
||||
<li><a href="https://github.com/broofa/node-uuid">node-uuid</a> – Simple
|
||||
and fast generation of UUIDS.</li>
|
||||
<li><a href="https://www.npmjs.com/package/supertest">Supertest</a> –
|
||||
Super-agent driven library for testing HTTP servers.</li>
|
||||
</ul>
|
||||
<h2 id="frameworks">Frameworks</h2>
|
||||
<blockquote>
|
||||
<p>Designed specifically for building RESTful API’s Quickly.</p>
|
||||
</blockquote>
|
||||
<ul>
|
||||
<li><a href="http://loopback.io">Loopback</a>.</li>
|
||||
<li><a href="http://sailsjs.org">Sails.js</a>.</li>
|
||||
<li><a href="https://github.com/tiangolo/fastapi">FastAPI</a>.</li>
|
||||
<li><a href="https://resthapi.com">rest-hapi</a>.</li>
|
||||
</ul>
|
||||
<h2 id="gateways">Gateways</h2>
|
||||
<blockquote>
|
||||
<p>Manage API infrastructure concerns such as
|
||||
authentication/authorization, rate limiting, scaling, analytics,
|
||||
etc.</p>
|
||||
</blockquote>
|
||||
<h3 id="open-source-self-hosted">Open Source / Self-hosted</h3>
|
||||
<ul>
|
||||
<li><a href="http://apiumbrella.io/">API Umbrella</a>.</li>
|
||||
<li><a href="http://apiaxle.com">ApiAxle</a>.</li>
|
||||
<li><a href="http://krakend.io">KrakenD</a>.</li>
|
||||
<li><a href="https://getkong.org/">Mashape Kong</a>.</li>
|
||||
<li><a href="https://tyk.io/">Tyk</a>.</li>
|
||||
<li><a href="http://wso2.com/api-management/try-it/">WSO2 API
|
||||
Manager</a>.</li>
|
||||
</ul>
|
||||
Reference in New Issue
Block a user