He was one of the creators of the Java Collections API and the Java Executor Framework, two of the most durable and most widely-copied APIs ever. That may not seem relevant for an HTTP/REST API, but it is. The design principles are timeless. Here's that reference:
https://twitter.com/amontalenti/status/1260030567501840386?s...
When I had to design a widely-used "HTTP/RESTful" API a few years back, I wrote a summary of the design principles here. It also includes a reference to an old O'Reilly book on the topic, which I summarized:
https://stripe.com/blog/api-versioning
https://stripe.com/blog/idempotency
It goes beyond "what is rest" and real life UX of apis
For anyone who hasn’t read it, it will fundamentally change how you think about REST and APIs for network services, and you’ll create much better APIs armed with that deeper understanding.
Paper: https://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm
Chapter introducing REST: https://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arc...
Not a book, but MS REST API Guidelines are pretty good although they don't cover funky important details like how to properly do REST operations/actions.
https://github.com/microsoft/api-guidelines
This is short one based on RedHat VM engineer experience:
https://restful-api-design.readthedocs.io/en/latest/intro.ht...
Manning has a solid books on topic:
Once you start thinking in terms of requests, responses, parameters, schemas etc the rest should easily fall into place! You also get the benefit of having a machine readable definition of your API if you write your design with the spec.
My reference when I'm designing a REST API.
https://www.oreilly.com/library/view/rest-api-design/9781449...
It's not about designing APIs, it's about designing your software to reflect the reality you're encoding into your software. It's a book of first principles that you can apply to any software you design.
This has an interesting generic discussion of API design which is technology agnostic.
You can read it in an hour or two. It cover a lot of things that you should consider
Some of these problems can be solved with an SDK (highly recommend, as it can greatly improve developer experience especially in a modern text editor or IDE) or switching to GraphQL (not without its own problems).
It even spends the first few chapters talking about API design in general (not just for REST) with really great, intuitive examples.
Another excellent reference is the "The Linux Programming Interface" book by Michael Kerrisk that documents most of the API available under Linux [3].
[1]https://www.amazon.com/dp/0201498413
[2]https://github.com/gon1332/gonlibs
[3]https://www.amazon.com/Linux-Programming-Interface-System-Ha...
It is everything you need to know and thinks about the angle of the people who need to consume your API. Quick read too.
https://www.amazon.com/REST-API-Design-Handbook-ebook/dp/B00...
https://www.amazon.com/dp/0321545613/ref=cm_sw_r_cp_apa_i_wn...
It's targeted at developing .NET frameworks with a broad audience so some of the guidelines aren't appropriate for internal APIs or applications.
https://www.vinaysahni.com/best-practices-for-a-pragmatic-re...
REST API guidelines from Microsoft
But know that they're all wrong. Some fatally.
The best you can do, ever, is to be consistent. So pick a style and stick to it. Honor the principle of least astonishment.