JSON API filter included resources

beniutek picture beniutek · Oct 23, 2016 · Viewed 8.1k times · Source

The question is about JSON API specification and how properly do a request (I'm using ruby on rails and the json api resources gem but that's a general question anyway, I know how to implement it, I just want to follow the rules of JSON API at: http://jsonapi.org/format/)

Situation 1:

  • I want to get all shelves
  • I want to include all books that are on those shelves
  • The get I'm supposed to use in this case is: www.library.com/shelves?include=books

Situation 2:

  • I want to get all books but only books that are marked as unread

  • The get I'm supposed to use is: www.library.com/books?filter[unread]=true

What would be correct way of designing request for all shelves with included unread books?

Can't figure this one out

www.library.com/shelves?include=books&filter[books.unread]=true ?

www.library.com/shelves?include=unread_books ? <- would have to specify another resource, books that are unread

www.library.com/shelves?filter[books.unread]=true ?

What's the most correct way of doing this?

EDIT

After speaking with my tech lead and a few other programmers, the first options is favoured the most in such cases

Answer

brian picture brian · Oct 23, 2016

I would bet on the first one:

www.library.com/shelves?include=books&filter[books.unread]=true