graphql-http

deno land deno doc

GraphQL on HTTP middleware with built-in validations and GraphQL playground

What

It provides GraphQL on HTTP middleware that can be embedded in any server.

Essentially, it takes a Request object and returns a Response object.

In the meantime, it performs HTTP request validation, processes GraphQL, and response object with the appropriate status code and message.

There is also a built-in GraphQL Playground.

Example

A simple example of creating a GraphQL server.

std/http + grpahql.js

import { graphqlHttp } from "https://deno.land/x/graphql_http@$VERSION/mod.ts";
import {
  Handler,
  serve,
  Status,
} from "https://deno.land/std@$VERSION/http/mod.ts";
import { buildSchema } from "https://esm.sh/graphql@$VERSION";

const schema = `type Query {
  hello: String!
}
`;
const graphqlResponse = graphqlHttp({
  schema: buildSchema(schema),
  rootValue: {
    hello: () => "world",
  },
  playground: true,
});

const handler: Handler = (req) => {
  const { pathname } = new URL(req.url);
  if (pathname === "/graphql") {
    return graphqlResponse(req);
  }

  return new Response("Not Found", {
    status: Status.NotFound,
  });
};

serve(handler);

License

Copyright © 2022-present TomokiMiyauci.

Released under the MIT license