genshindev / api

A fan-made Genshin Impact API for easy access to game data.
https://genshin.jmp.blue
Open Software License 3.0
704 stars 190 forks source link

What do you think about GraphQL? #107

Closed ifrvn closed 2 years ago

ifrvn commented 2 years ago

This is just a discussion. I think GraphQL would be a better option for relationship query. But if we're adding support for GraphQL, some entity structure might have to be changed for better relationship definition. It would bring breaking changes to the api. I would love to work on GraphQL support if we can reach agreements on it.

NurMarvin commented 2 years ago

GraphQL support was something we had planned in the early days of the project, but sadly stopped exploring when a developer that worked on implementing the API departed from the project. The API was initially way bigger in scope, i.e. using a database instead of JSON files to save data and with that giving every entity a clear property structure. Among those things was also GraphQL support as mentioned before, but due to never having worked with GraphQL I wasn't all too sure on how to implement it correctly. Regarding the breaking changes, I guess this is something we still need to figure out a solution for but if you want, you can start working on GraphQL support and once you're done we can evaluate how impactful the breaking changes will be. Based on that, we might need to introduce a versioning system or not, but that's something to consider once we know the impact amount. Feel free to change anything in the entity structure as you see fit for optimal GraphQL support and also feel free to reach to me via the Discord server or in this issue if you have any further questions regarding this, so we can make the GraphQL support as optimal as possible for people

AndrewThian commented 2 years ago

I'm kinda interested in building graphql schemas for this too! hit me up if you wanna collaborate :)