laravel-json-api / laravel

JSON:API for Laravel applications
MIT License
551 stars 42 forks source link

Add rule objects to validate resource IDs in query parameters #237

Open lindyhopchris opened 1 year ago

lindyhopchris commented 1 year ago

For example, for cursor pagination that uses resource IDs we need some rule objects that use the Laravel JSON:API implementation to validate those IDs. I.e. we have the ID pattern to match against, we have the encoding/decoding of IDs, and then we can actually check whether those IDs exist too.

An example of cursor pagination validation as it exists at the moment woud be:

  'page.after' => 'filled|string|exists:lessons,id',
  'page.before' => 'filled|string|exists:lessons,id',

In this example, it doesn't work if the resource IDs are encoded as Laravel's exists rule doesn't know that the value it is given needs to be decoded before the database is queried.

Originally posted by @othneildrew in https://github.com/laravel-json-api/laravel/issues/201#issuecomment-1192008924