018: Introspection and GraphQL APIs
This is a continuation of a series following along with my learning journey for GraphQL + Insomnia. Find the source code to follow along with here.
I jumped back into the edX GraphQL training and finished it. In theory, it all sounds very simple. There are some areas that are sorely underdeveloped, though. Resolvers, for one thing, while not entirely nysterious, are still beyond my range of competency. That’s okay though, that will take practice. The course briefly mention introspection, but this was cursory. Given that GraphiQL, the GraphQL Playground, and programs like Insomnia already do this automatically, there really wasn’t much more information to make use of.
One of the biggest shortcomings with introspection, I think, is the ability to determine what will qualify as valid input for a query. Yes, there are types, and they will guide you to some extent, but they won’t help when attempting to interact with a poorly documented public API.
With a resurgence of attention on the tools available in the GraphQL ecosystem, perhaps we will see improved documentation and introspection.
I fired up Insomnia as I worked through the training course linked above, to see introspection in action as it was demonstrated. While most API testing and development tools have the capability to extract a schema automatically, it was still cool to see introspection in action. Knowing how this works means you can build apps with vanilla code to understand the schema you’re working with when troubleshooting a problem with your tooling.
I will always be in support of minimizing dependencies wherever possible, and knowing the long way around can go a long way in building apps that rely less on external code.