Helldivers 2 API #28
-
Hello there!Let me preface this by saying thank you to the community who has been contributing to this API so far, both with suggestions, endpoints, bug reports and PR's. While the API is currently designed in Elixir, and I love me some good Elixir, I feel like there's several reasons I'd like to migrate away to a new language: Open for contributionsMuch as I love Elixir, it's not exactly the most widely known language out there, which makes the barrier for people looking to contribute to the API just that bit higher, ideally we'd migrate to a more widely known language Immutable data structuresElixir is a language that uses immutable data structures, modifying something makes a copy of it and everything referencing the original object keeps the original data. API designWhile there's definitely already tooling in place in the current version for OpenAPI etc, it's quite painful to maintain multiple schemas for the OpenAPI and the domain logic schema's itself, whereas languages like C# allow generating this directly from the domain logic Reusable dataCurrently most re-usable data can be found in the ExperienceAlthough I have some professional experience working in Elixir, I'm a C# developer in my day 9-to-5 job, and I can confidently say I'm much more proficient in security, design, resource management and performance in languages like C# than I am in Elixir. ConclusionI'm opening this discussion to give a voice to the people who are currently using the API. So this is your chance to provide input on how you use this API, or what you'd like to see from this API and hopefully we can create the one API to rule them all. Cheers! |
Beta Was this translation helpful? Give feedback.
Replies: 4 comments 5 replies
-
First of all, thank you for laying the ground work! It's daunting to think about starting an API when there's nothing to go off of. I think GraphQL could be interesting to explore because as you mentioned it would be a lot more efficient. Personally C# is fine for me but I'd love to hear others thoughts on what we could use as an alternative. Lastly moving the static data to a seperate CDN project or something similar sounds like a good idea. +1 |
Beta Was this translation helpful? Give feedback.
-
+1 for C# .NET too :D |
Beta Was this translation helpful? Give feedback.
-
Well I love Elixir, so I'm biased 😂 Having the self-healing So my vote is officially for Elixir ✅ Edit: also, thank you for starting this. I love to see Elixir in the wild and so far this project has been great to work with. |
Beta Was this translation helpful? Give feedback.
-
I really like the approach of this project and providing an open source community API. Personally, I'd veer towards Python due to its popularity (contribution barrier to entry). Packages such as FastAPI (based on OpenAPI spec) and strawberry could be used to provide the API and GraphQL functionality respectively. FastAPI has auto generating docs etc. |
Beta Was this translation helpful? Give feedback.
First of all, thank you for laying the ground work! It's daunting to think about starting an API when there's nothing to go off of.
I think GraphQL could be interesting to explore because as you mentioned it would be a lot more efficient.
Personally C# is fine for me but I'd love to hear others thoughts on what we could use as an alternative.
Lastly moving the static data to a seperate CDN project or something similar sounds like a good idea.
+1