A mechanized formalization of GraphQL

7Citations
Citations of this article
25Readers
Mendeley users who have this article in their library.
Get full text

Abstract

GraphQL is a novel language for specifying and querying web APIs, allowing clients to flexibly and efficiently retrieve data of interest. The GraphQL language specification is unfortunately only available in prose, making it hard to develop robust formal results for this language. Recently, Hartig and Perez proposed a formal semantics for GraphQL in order to study the complexity of GraphQL queries. The semantics is however not mechanized and leaves certain key aspects unverified. We present GraphCoQL, the first mechanized formalization of GraphQL, developed in the Coq proof assistant. GraphCoQL covers the schema definition DSL, query definitions, validation of both schema and queries, as well as the semantics of queries over a graph data model. We illustrate the application of GraphCoQL by formalizing the key query transformation and interpretation techniques of Hartig and Perez, and proving them correct, after addressing some imprecisions and minor issues.We hope that GraphCoQL can serve as a solid formal baseline for both language design and verification efforts for GraphQL.

Author supplied keywords

Cite

CITATION STYLE

APA

Diaz, T., Olmedo, F., & Tanter, E. (2020). A mechanized formalization of GraphQL. In CPP 2020 - Proceedings of the 9th ACM SIGPLAN International Conference on Certified Programs and Proofs, co-located with POPL 2020 (pp. 201–214). Association for Computing Machinery, Inc. https://doi.org/10.1145/3372885.3373822

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free