Refresh icon indicating copy to clipboard operation
Refresh copied to clipboard

APIv4 Wishlist

Open jvyden opened this issue 7 months ago • 1 comments

This is an epic, and will grow over time as I think of changes that should be made for the next iteration of the API.

  • [ ] Move all level statistics into a dedicated statistics object (ref. https://github.com/LittleBigRefresh/Refresh/pull/517)
  • [ ] Remove events array from Recent Activity endpoints (ref. https://github.com/LittleBigRefresh/Refresh/pull/782)
  • [ ] Include all personal relations of a user to a level (by @Toastbrot236)
  • [ ] Rework admin endpoints to allow direct manipulation of database objects
  • [ ] 2-way OAuth support for integrating with other applications (both apps integrating with Refresh, and Refresh integrating with apps)
  • [ ] Remove multi-key lookups (e.g. only have {uuid} endpoints instead of {uuid} and {username}). Addresses developer strain mentioned in #845.
  • [ ] Support warnings for all API responses
  • [ ] Validation exceptions & clean handling for them

For compatibility with older clients, it's possible we could have a tiny go server or something that provides a translation layer from APIv4 to APIv3. Would probably be a bit messy to have in the Refresh solution.

jvyden avatar Jun 01 '25 00:06 jvyden

Another idea: Maybe have the personal relations of a user to a level (own play count, has hearted, has queued etc) still be in a dedicated ApiGameLevelRelationsResponse object, but include that object in the level's response instead of only returning it with a separate endpoint? Would let clients show the user's relations for an entire list of levels at once (similarly to how the game does it) instead of just for one individual level. This could then probably also be extended to showing personal relations towards users, playlists etc.

Toastbrot236 avatar Jun 01 '25 11:06 Toastbrot236