jikan-me / jikan-rest

The REST API for Jikan
https://docs.api.jikan.moe/
MIT License
435 stars 270 forks source link

💡 Allow query of multiple types in Anime and Manga #493

Open irfan-dahir opened 9 months ago

irfan-dahir commented 9 months ago

Is there an existing issue for this?

Is your feature request related to a problem?

Requested multiple times over discord. Latest one here: https://discord.com/channels/460491088004907029/462992340718583814/1187797767213568080

Describe the solution you'd like

?types=tv,movie

Describe alternatives you've considered

No response

Teachability, Documentation, Adoption, Migration Strategy

Filter support in the UI, better data filtering

pushrbx commented 9 months ago

My idea for this was to add odata protocol implementation, and it would live under a different prefix other than /v4. https://github.com/flat3/lodata

like: https://api.jikan.me/odata/v1/

Odata already has the concept of "multiple selections for a filter parameter" and you can easily transform that to ORM calls.

More on OData here: https://learn.microsoft.com/en-us/odata/ Some examples of would request urls would look like: https://learn.microsoft.com/en-us/odata/concepts/queryoptions-overview

irfan-dahir commented 9 months ago

@pushrbx ODATA would be an interesting implementation especially for users who want a more fine control over filters and data querying.

I think there are some prerequisites that we'd have to meet for this:

  1. Migrate to Laravel (as lodata supports laravel and Lumen is most likely going to be discontinued in any case)
  2. Combining data of resources that have subpages into one collection (anime details, episodes, etc. all into one collection/entry rather than how it's currently sprawled out. This would allow us to cater to https://github.com/jikan-me/jikan-rest/issues/462 as well with ODATA and it would improve the request lifecycle.

While ODATA does seem like a feasible approach moving forward I still think we should still have type to have multiple support as a feature of our current search approach.