Live data from Hacker News

ASK HN: Advanced API Development, Advice Needed

news.ycombinator.com

1–9 of 9 posts

Re: ASK HN: Advanced API Development, Advice Needed

#4
Scalable API is not about the language or framework. It's about system design. If you wish to scale, you have to know how to design to scale. So research and read up about system design, it comes down to knowing how to cache, how to use queues to take off load off your API, deciding on async and sync operations, understanding distributed systems, how to split work and data across systems. Understanding when to use NoSQL. On practices, good software engineering practices apply irrespective of if it's an API or desktop software. On frameworks usually don't, especially to ORMs. Most frameworks are heavy, but if you must, then use what's battle tested and avoid the new shiny things.

Books - designing data intensive applications, any good book on queueing theory. Blogs - I believe are the best, Netflix, Facebook, Google, Uber, any of the big companies that share how they build their systems, you will pick up plenty of knowledge. Some talks from conferences, like Qcon & Strangeloop, Oreilly Arch.

Re: ASK HN: Advanced API Development, Advice Needed

#5
I enjoyed the Amundsenn book mentioned by irene_t and the collection+json specification, but found that my API consumers ignored the links in the collection+json response in favor of hardcoding URLs in their consuming apps.

Although my swing at RESTful API development wasn't particularly successful I do like the book. It helped me think more about the HTTP protocol and the well-defined nature of HTTP response codes.

I HIGHLY recommend the Clojure liberator library with its decision-graph model - it made my API development so much easier to reason about and maintain with respect to the HTTP response codes. I actually found just looking at the decision graph to clarify some of my thoughts and questions on HTTP-based API design.

Re: ASK HN: Advanced API Development, Advice Needed

#6
post #4

Scalable API is not about the language or framework. It's about system design. If you wish to scale, you have to know how to design to scale. So research and read up about system design, it comes down to knowing how to cache, how to use queues to take off load off your API, deciding on async and sync operations, understanding distributed systems, how to split work and data across systems. Understanding when to use No…

+1 for Designing Data Intensive Applications, it's a phenomenal book that's helpful if you've never scaled before.