Streamlining Access to NASA Earth Science Data with GraphQL - Ryan Abbott, Element 84
Streamlining Access to NASA Earth Science Data with GraphQL - Ryan Abbott, Element 84 The Common Metadata Repository (CMR), NASA's datastore for Earth science metadata offers multiple API's that allow users to access the underlying data in many ways. With the launch of recent missions, CMR's usage has increased exponentially; this usage and the features added to support new capabilities have made it increasingly difficult to keep it's response formats and capabilities consistent and performant. Unfortunately agency requirements and existing CMR client implementations limit our ability to change our APIs. In our research for a solution that would allow us to work within these limitations, the use of GraphQL as an abstraction layer would mean that our existing APIs could remain unchanged. Additionally, this would allow us to offer new functionality via a self-documenting, specification based approach. Our introduction of GraphQL has allowed us to normalize the ways that users communicate with our APIs and enabled us to make changes to our core APIs with no impact to clients. In this talk, I'll discuss the challenges, wins, losses, and lessons learned in wrapping CMR's API with GraphQL and how it's being utilized today. GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data. GraphQL provides a complete and understandable description of the data in your API, gives clients the power to ask for exactly what they need and nothing more, makes it easier to evolve APIs over time, and enables powerful developer tools. Get Started Here: https://graphql.org/