Boris Eetgerink

Hey, thanks for reading my blog.
June 12, 2023

Levels of API granularity

When designing an HTTP API you have to decide on its level of granularity. In my experience there are three levels to choose from: The resource, aggregate and facade level. Each level determines how detailed each endpoint is and as a consequence how many endpoints there are. Besides that, each level also determines where most of the in...
Read more
June 5, 2023

An API gateway is a facade

Today I learned that an API gateway can be more than just a reverse proxy. It can also be used as a facade: it hides the numerous requests required to build a screen, whether those endpoints are all part of one monolithic REST API, or are from multiple microservices. The gateway might become a single point of failure, but it also hides...
Read more
November 30, 2022

The power of media types

For my research into REST I wanted to dive a little deeper into media types, but others have already done so years ago. It's great to read old blog posts and see they're still relevant today. So credit where credit is due, these are must-read posts about media types: • RESTful resources are not typed (original/archive) • The role of me...
Read more
November 18, 2022

REST in 14 bullet points

Roy Fielding's dissertation on REST is very abstract. With these bullet points, I hope to make REST a bit more accessible and invite you to explore further. • REST is protocol independent, but is most often used over the HTTP protocol. • REST is not tied to a specific media type (JSON for example), but it does require a media type with...
Read more
November 18, 2022

REST and Hypermedia as the engine of application state

My previous post REST for object oriented software developers only scratched the surface of REST. It was meant as an introduction on how to think about the states and state transitions of resources. This post is more of a deep dive into REST and HATEOAS. But before we get there, we have to start with media types (formerly known as MIME...
Read more
November 4, 2022

REST for object oriented software developers

When designing an HTTP API, it is tempting to look at the common HTTP methods GET, PUT, POST and DELETE as CRUD operations with JSON objects that closely match database tables. In this post I'll show why that approach breaks encapsulation and how applying object oriented design practices improves the API and makes applying REST easier....
Read more