Opinions on GraphQL and other schema/query languages? Lassi Kortela 28 Jun 2019 14:35 UTC

(cc John since I don't know whether he's on the list)

What are your thoughts on using GraphQL or similar for the Scheme API?

I've been looking into it and trying out the Clojure library Lacinia
(https://github.com/walmartlabs/lacinia). Unfortunately I've had a bad
time with it. Lacinia is very difficult to understand, documentation is
very spotty and even a hello world runs extremely slowly. There is no
comprehensible error checking as far as I can tell, and the stack traces
are a mile long.

I didn't find any GraphQL libraries for Scheme, Racket or Common Lisp.

John looked at the GraphQL spec and did a first cut of deriving a Scheme
and S-expression mapping from it.

The GraphQL competitor OData looks like much the same thing, but more
complex and with a less elegant interface. It would seem to have every
feature GraphQL has and then some, but I'm not sure we need any of the
extra features.

It would be easier to hand-roll our own REST API as originally planned,
but in a few months we'll run into all the problems that GraphQL solves
(versioning, data types and schemas, custom queries), and we'll have to
invent custom ad hoc solutions to them instead of using GraphQL's
standardized solutions.