Best way to design REST API.
I have both experiences as API developer and API consumer too. I am curious to know is there any best practices, There should be some consensus, here is the answer Google released an API design guide recently.
Characters of design good API:-
- Easy to learn
- Easy to a consumer without documentation.
- Secure & scalable.
- API should be easy to extend.
- Deliver higher quality in lower cost.
- Appropriate to an audience.
- High adaptability & Productivity.
The Google API design guide is pretty straightforward in its purpose, with a goal of helping “developers design simple, consistent, and easy-to-use networked APIs” — but I thought it was noteworthy that they were also looking to help “converging designs of socket-based RPC APIs with HTTP-based REST APIs.”
“This Design Guide explains how to apply REST principles to API designs independent of programming language, operating system, or network protocol. It is NOT a guide solely to creating REST APIs.”
Most of the companies think that API design is only in the context of REST API design this guide will help you to think beyond the REST API design style.
The best thing about this guide is this is not only for REST. I think many of the developers already aware of the API style book. API style book is really best guide to designing REST API. If you don’t know about the API style book then go through it and apply the same in your tool suite.
I love the way google guideline explain to us How to design good API.
API should do one thing and do it well.
Don’t leak implementation logic. Names really matter in API design, names should be largely self-explanatory. API should like prose.
This is the simple my understanding about the Google API design guideline and let me know more from you, How you guys design API in an organization?