Chapter 8. Queries

Querying for information is a common application of the HTTP method GET. Queries usually involve three components. They are filtering, sorting, and projections. Filtering is the process of selecting a subset of entities based on some filter criteria. Sorting influences how the server arranges the results in the response. Finally, a projection is the process of selecting certain fields in each entity to be included in the results. For example, a query submitted to a movies server may involve filtering the movies by genre, then sorting the movies by their release dates in reverse chronological order, but then selecting only the title, the year, and a brief description of each movie in the response to the client.

Query design is relatively simple as far as URIs and representations are concerned. For clients to run queries, the server’s responsibilities include designing URIs to support filtering, sorting, and projections; designing representations; and setting appropriate caching headers. This chapter deals with such protocol-visible aspects of query design, covering the following recipes:

Recipe 8.1

This recipe shows how to design URIs for queries.

Recipe 8.2

This recipe shows how to model query results as representations of collection resources.

Recipe 8.3

Use this recipe to learn how to process queries with large inputs.

Recipe 8.4

Use this recipe to implement stored queries.

8.1. How to Design URIs for Queries

Problem

You want to know how to design URIs to support queries. ...

Get RESTful Web Services Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.