Question: [This question](https://codereview.stackexchange.com/q/232972/23788) was posted recently, and presents a GraphQL schema for review.

Arguably, GraphQL doesn't *do* much, and we've closed plain Java and C# posts before where all reviewers had to chew on was a *model* class with a bunch of properties.

On the other hand, a GraphQL schema is self-contained and formalizes a query interface using JSON objects - and that isn't very different from, say, a T-SQL script that creates tables and their primary and foreign key constraints... and we have [reviewed such content before](https://codereview.stackexchange.com/q/221391/23788).

GraphQL obviously adheres to JSON standards, and I suppose there *are* best practices in the design of a GraphQL schema.

So, is GraphQL reviewable?

Answer: 
GraphQL is on-topic, but only if there is more than just the schema
-------------------------------------------------------------------

This is controversial. In my opinion, GraphQL, in general, is reviewable, but the schema on its own, with no implementation detail, is not.

A GhraphQL Schema is analogous to an interface. It is the agreed contract between a client and a server. In GhraphQL, the "implementation" is the resolvers that collect and then supply the data in the schema-conformant presentation.

The controversy is summarized as...

Interfaces on their own are reviewable (some answers say no, but high-voted answers say yes):

* [Questions about interfaces, protocols, and APIs](https://codereview.meta.stackexchange.com/questions/2308/questions-about-interfaces-protocols-and-apis?r=SearchResults&s=4|23.2566)

Interfaces on their own are not reviewable (but are "design reviews")

* [Are questions about public interface (API) on topic?](https://codereview.meta.stackexchange.com/questions/502/are-questions-about-public-interface-api-on-topic)
* [Reviewing design](https://codereview.meta.stackexchange.com/questions/1924/reviewing-design)

And, back to my opinion.

No, interfaces are a specification, not code, and are not suitable for Code Review.
===================================================================================

If there was a Design Review stack exchange, then it may be on topic there. In a pinch, if a person wants a style review only of a specification, then perhaps it could be reviewed, but in design phase, it is all too hypothetical to be on-topic
Yes, but...
===========

There should be something reviewable. A straight dump of a GraphQL schema is inappropriate, I believe there should be the same rules as SQL.

A straight table-dump of SQL is completely un-reviewable, but a dump of several tables, with relationships and complicated interconnections is reviewable. A dump of a stored procedure, function or trigger is also reviewable. A batch is reviewable.

I believe GraphQL should fit that same general guideline. Questions like "is this GraphQL type sensible" don't fit well, but questions like "does this social network model look reasonable" would be a better fit.