How to Add Defaults
You may need to change the default behavior or your API - perhaps you want a default of 10 per page instead of 20. JSONAPI Suite provides facilities that enable defaults that can be overridden - 10 per page, unless elsewise specified by the user.
You can see these defaults in the Resource documentation:
default_filter :active do |scope|
scope.where(active: true)
end
default_page_size(10)
default_sort([{ created_at: :desc }])These can all be overriden by the user. In other words, hitting
/posts will only show active Posts, hitting
/posts?filter[active]=false will show inactive Posts. The same applies
for sorting and pagination.
A common pattern is for default filters to apply for all users, but
allow overrides for administrators. You can use the :if option to
restrict the override:
# app/resources/post_resource.rb
allow_filter :active, if: :admin?
# app/controllers/posts_controller.rb
def admin?
current_user.admin?
endNow the default behavior is to view only active Posts, but
administrators can override this default.