What I’m working on

(Concisely describe my current challenge and the question(s) I’m trying to answer)

Our project backend needs modularity and servicing of different frontends (web and mobile):

  • Is GraphQL suited for our needs and scale?
  • What are the ideal use cases for GraphQL?

What I Learned

(Summarize new knowledge, reflections, or insights gained.)

GraphQL could be interesting because it provides one flexible endpoint where both web, iOS and Android could retrieve exactly the modules and data they need – without unnecessary traffic, which can be crucial on mobile apps (e.g. due to battery life, bandwidth).

GraphQL requires the entire team to learn its syntax. However, the .NET library HotChocolate provides a GUI (Nitro) that makes it easier for frontend to define data queries to the GraphQL endpoint.

Nitro: User can select the exact data they need via the GUI. The corresponding GraphQL query (“Request”) is written automatically, and the expected Response is shown as well. image.png

A simple test project for GraphQl: GraphQL Experiment

Access Nitro via: https://localhost:{PORT}/graphql/ (i.e. append “/graphql”)

What do I need to do

(Write about any obstacles, or upcoming questions, that I may need to address)

  • Understand GraphQL more in-depth in relation to a project like ours.
  • Research the alternatives to GraphQL (for example just an API-gateway, possibly microservices)
  • Discuss the concrete data needs with my product team.

Material

(Links, tutorials, or reference material)