At some point almost every Ruby on Rails application integrates with some third-party service through an API. Sometimes there is a gem available, but often not. It's also not a given that such a gem is kept up-to-date, works in a way you prefer or it might feel excessive when you only need to access a small set of APIs.

So writing API clients is inevitable. There are a dozens way to approach this and of course there are tradeoffs everywhere. Over the years I've written many API clients and for this project I want to dig deeper into what makes a good Ruby API client and show many different ways that you can handle the things that are involved with writing them. There is no ‘silver bullet’, good or bad, just different approaches.

robust: capable of performing without failure under a wide range of conditions

About me

My name is Dennis Paagman and I'm a independent Rails developer from the Netherlands. I've been building Ruby (on Rails) applications for over 10 years. More on my personal website.

I plan to write on a broad range of topics related to API clients, such as tips on structuring code, choosing the right levels of abstraction, how to handle the authentication, rate limiting, pagination, testing, security, and many more subjects.

For now Robust Ruby will be a blog where I will periodically post new articles, so sign up for the newsletter to receive the latest post directly in your inbox!

I’m also always happy to receive feedback, new tips or anything interesting, really. Feel free to contact me on social media, or send me an email at!

What is Robust Ruby about?

An introduction to the blog, me and some of the goals of this project.