A Mechanized Formalization of GraphQL - Archive ouverte HAL Accéder directement au contenu
Communication Dans Un Congrès Année : 2020

A Mechanized Formalization of GraphQL

Résumé

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, Har-tig and Pérez 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 Pérez, 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.
Fichier principal
Vignette du fichier
main.pdf (950.19 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-02422532 , version 1 (22-12-2019)

Identifiants

Citer

Tomás Díaz, Federico Olmedo, Éric Tanter. A Mechanized Formalization of GraphQL. CPP 2020 - 9th ACM SIGPLAN International Conference on Certified Programs and Proofs, Jan 2020, New Orleans, United States. ⟨10.1145/3372885.3373822⟩. ⟨hal-02422532⟩
156 Consultations
547 Téléchargements

Altmetric

Partager

Gmail Facebook X LinkedIn More