I am designing a REST like API for paginated data retrieval of a YUI-based client. The REST URL looks like this for a GET request:
/app/catalog/data?startIndex=<int>&results=<int>&sort=<sting>&dir=<string>
All parameters are optional, i.e. if no parameters are given, all data from DB will be dumped. Now say that there are only 1000 records in the database. Following reqeust is made:
/app/catalog/data?startIndex=1100&results=25
What status code should I return if the paginated result from the database remains empty though the request was fine?! I can't decide whether this is 204
or 404
.
The produced media types are JSON and CSV.
Neither. Just return
200
with an empty result (empty XML document or JSON array, whatever you use). Typically I use REST services with paginated views so along with results page I return total number of records. This will help clients to realize the mistake. But technically it is nothing wrong.Use
204
forDELETE
operations (there's really no content to return) and forPUT
.BTW (bold mine):
Believe, you don't want to do this...
What format do you normally return your results in? I'd be inclined to make this 204 or even 200 returning an empty list.
I would say 204 is most appropriate. The request was successful, just with no results.
Sounds exactly like the case.