https://mamchenkov.net/wordpress/2014/07/02/how-to-design-a-good-api-and-why-it-matters/
How To Design A Good API and Why it Matters