HTTP Pattern Index

When building HTTP-based applications we are limited to a small set of HTTP methods in order to achieve the goals of our application. Once our needs go beyond simple CRUD style manipulation of resource representations, we need to be a little more creative in the way we manipulate resources in order to achieve more complex goals.

The following patterns are based on scenarios that I myself have used in production applications, or I have seen others implement. These patterns are language agnostic, domain agnostic and to my knowledge, exist within the limitations of the REST constraints.

NameDescription
AliasA resource designed to provide a logical identifier but without being responsible for incurring the costs of transferring the representation bytes.
ActionComing soon A processing resource is used to convey a client’s intent to invoke some kind of unsafe action on a secondary resource.
BouncerA resource is designed to accept a request body containing complex query parameters and redirect to a new location to enable the results of complex and expensive queries to be cached.
BuilderComing soon: A builder resource is much like a factory resource in that it is used to create another resource, however, a builder is a transient resource that enables idempotent creation and allows the client to specify values that cannot change over the lifetime of the created resource.
BucketA resource is used to indicate the status of a “child” resource.
DiscoveryThis type of resource is used to provide a client with the information it needs to be able to access other resources.
FactoryA factory resource is one that is used to create another resource.
MiniputA resource designed to enable doing partial updates to another resource.
ProgressA progress resource is usually a temporary resource that is created automatically by the server to provide status on some long-running process that has been initiated by a client.
SandboxComing soon: A processing resource that is paired with a regular resource to enable making “whatif” style updates and seeing what the results would have been if applied against the regular resource.
ToggleComing soon: A resource that has two distinct states and can easily be switched between those states.
WhackamoleA type of resource that when deleted, re-appears as a different resource.
WindowComing soon: A resource that provides access to a subset of a larger set of information through the use of parameters that filter, project, and zoom information from the complete set.

Leave a Comment

Your email address will not be published.