
Published: 06 July 2025
Known Uses
The Wish Template is a design pattern that lets API clients specify exactly which nested data structures they want returned. By mirroring the desired response shape in the request itself, it leverages the mechanics of graph‑style APIs, allowing clients to traverse and select interconnected data. As noted in the book, GraphQL is concrete realization of this pattern.
GraphQL is used sporadically within the Dutch government and not in the Dutch energy sector.
Example from Dutch government: The Term Network is an API for searching terms across common thesauri, classification systems, and reference lists provided by the Dutch government. It offers even a GraphQL playground. This example highlights that the Wish Template design pattern and its GraphQL realization are a good fit for complex or frequently changing frontend needs; however, they can also lead to overengineering situations.
Discussion Input
Comparing the Wish Template and Wish List pattern usually kicks off chats about where they work best and how to actually put them into practice. OData allows you to apply query options not only at the top level but nested within $expand
and even inside $select
. So you can refine, filter, order or limit the very entities you’re expanding without pulling back every property or related record. GraphQL queries are inherently hierarchical: clients define the exact shape of the response through nested selection sets rather than separate $select
or $expand
options as in OData. So, we think the Wish List aligns with OData, while the Wish pattern aligns with GraphQL. OData uses URL query parameters for its Wish list (e.g., $filter
, $select
, $expand
), whereas GraphQL operations are sent primarily as a request payload following the Wish Template. As stated in the book: GraphQL can be seen as a large-scale framework realization of the Wish Template pattern.

Read the complete pattern on api-patterns.org