rsnext/examples/with-graphql-gateway
Steven 4466ba436b
chore(examples): use default prettier for examples/templates (#60530)
## Description
This PR ensures that the default prettier config is used for examples
and templates.

This config is compatible with `prettier@3` as well (upgrading prettier
is bigger change that can be a future PR).

## Changes
- Updated `.prettierrc.json` in root with `"trailingComma": "es5"` (will
be needed upgrading to prettier@3)
- Added `examples/.prettierrc.json` with default config (this will
change every example)
- Added `packages/create-next-app/templates/.prettierrc.json` with
default config (this will change every template)

## Related

- Fixes #54402
- Closes #54409
2024-01-11 16:01:44 -07:00
..
pages chore(examples): use default prettier for examples/templates (#60530) 2024-01-11 16:01:44 -07:00
public feat(examples): build a GraphQL Gateway with GraphQL Mesh and Next.js API routes (#36439) 2022-05-23 11:02:21 -05:00
styles feat(examples): build a GraphQL Gateway with GraphQL Mesh and Next.js API routes (#36439) 2022-05-23 11:02:21 -05:00
.gitignore Add .yarn/install-state.gz to .gitignore (#56637) 2023-10-18 16:34:48 +00:00
.meshrc.yaml feat(examples): build a GraphQL Gateway with GraphQL Mesh and Next.js API routes (#36439) 2022-05-23 11:02:21 -05:00
next-env.d.ts Remove incorrect entries for pnpm debug log (#47241) 2023-03-26 22:26:05 -07:00
next.config.js chore(examples): use default prettier for examples/templates (#60530) 2024-01-11 16:01:44 -07:00
package.json update @types/react version in examples (#57259) 2023-10-26 19:52:08 -05:00
README.md update example Deploy button URLs (#48842) 2023-04-26 13:31:44 -04:00
tsconfig.json feat(examples): build a GraphQL Gateway with GraphQL Mesh and Next.js API routes (#36439) 2022-05-23 11:02:21 -05:00

GraphQL Gateway using GraphQL Mesh and Next.js API routes

This is a simple set up for Next.js using GraphQL Mesh to build a GraphQL Gateway based on a REST API.

GraphQL Mesh is a framework that allows to build GraphQL Gateway server, based on one or multiple source APIs (REST, SOAP, gRPC, GraphQL or Databases).

graph TD;
subgraph AA [" "]
A[Mobile app];
B[Web app];
C[Node.js client];
end
subgraph BB [" "]
E[REST API];
F[GraphQL API];
G[SOAP API];
end
Z[GraphQL Gateway API on a Next.js API route];
A & B & C --> Z;
Z --> E & F & G;

Configuring GraphQL Mesh only requires installing the required packages and providing a .meshrc.yaml configuration file.

This project translate the PetStore REST API (https://petstore.swagger.io/) to a GraphQL API by simply providing the following configuration:

.meshrc.yaml

sources:
  - name: PetStore
    handler:
      newOpenapi:
        baseUrl: https://petstore.swagger.io/v2/
        oasFilePath: https://petstore.swagger.io/v2/swagger.json

More information on GraphQL Mesh configuration and concepts are available in our documentation.


Deploy your own

Deploy the example using Vercel:

Deploy with Vercel


How to use

Execute create-next-app with npm, Yarn, or pnpm to bootstrap the example:

npx create-next-app --example with-graphql-gateway with-graphql-gateway-app
yarn create next-app --example with-graphql-gateway with-graphql-gateway-app
pnpm create next-app --example with-graphql-gateway with-graphql-gateway-app