Skip to content

Sponsor: Do you build complex software systems? See how NServiceBus makes it easier to design, build, and manage software systems that use message queues to achieve loose coupling. Get started for free.

Learn more about Software Architecture & Design.
Join thousands of developers getting weekly updates to increase your understanding of software architecture and design concepts.


Follow @CodeOpinion

HTTP API

How to (and how not to) design REST APIs

Everyone seems to love best practices or rules for designing REST APIs. But is all this guidance good advice? Let’s find out. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. “REST” API Rules I stumbled upon a post outlining rules around how you design REST APIs. These posts are often found on LinkedIn, and I usually shake my head when reading them, so I figured I’d review this one and give some feedback. I shake my head because some of these will seem pretty standard, but… Read More »How to (and how not to) design REST APIs

Free your HTTP API. Misconceptions are holding you back!

We all get caught in the trap of following various practices because everyone else is and seems like an industry standard. So here are three HTTP API Misconceptions that will make you start thinking about your system and other best practices you’re applying. YouTube Check out my YouTube channel, where I post all kinds of content accompanying my posts, including this video showing everything in this post. Custom Headers The first of the HTTP API Misconceptions is about custom headers. This is a great example of just following the herd and assuming that because everyone else does it “this way”, then that’s… Read More »Free your HTTP API. Misconceptions are holding you back!

Optimistic Concurrency in an HTTP API with ETags & Hypermedia

How do you implement optimistic concurrency in an HTTP API? There are a couple of different ways, regardless of what datastore you’re using in the backend. You can leverage the ETag header in the HTTP Response to return a “version” of the resource that was accessed. When a client then needs to perform some operation on the resource, they send an If-Match header apart of the request with the value being the result of ETag from the initial GET request. Another option is to leverage hypermedia by returning URIs for actions relevant to a resource that include the version apart… Read More »Optimistic Concurrency in an HTTP API with ETags & Hypermedia