Giter VIP home page Giter VIP logo

graphql-faker's Introduction

GraphQL Faker logo

GraphQL Faker

npm David David npm

Mock your future API or extend the existing API with realistic data from faker.js. No coding required. All you need is to write GraphQL IDL. Don't worry, we will provide you with examples in our IDL editor.

In the GIF bellow we add fields to types inside real GitHub API and you can make queries from GraphiQL, Apollo, Relay, etc. and receive real data mixed with mock data. demo-gif

How does it work?

We use @fake directive to let you specify how to fake data. And if 60+ fakers is not enough for you, just use @examples directive to provide examples. Just add a directive to any field or custom scalar definition:

type Person {
  name: String @fake(type: firstName)
  gender: String @examples(values: ["male", "female"])
}

No need to remember or read any docs. Autocompletion is included!

Features

  • 60+ different types of faked data e.g. streetAddress, firstName, lastName, imageUrl, lorem, semver
  • Comes with multiple locales supported
  • Runs as a local server (can be called from browser, cURL, your app, etc.)
  • Interactive editor with autocompletion for directives with GraphiQL embeded
  • โœจ Support for proxying existing GraphQL API and extending it with faked data Extend mode diagram

Install

npm install -g graphql-faker

or

yarn global add graphql-faker

or

docker run -ti -p 9002:9002 graphql-faker # arguments (--open won't work with docker)

TL;DR

Mock GraphQL API based on example IDL and open interactive editor:

graphql-faker --open

Note: You can specify non-existing IDL file names - Faker will use example IDL which you can edit in interactive editor.

Extend real data from SWAPI with faked data based on extension IDL:

graphql-faker ./ext-swapi.grqphql --extend http://swapi.apis.guru

Extend real data from GitHub API with faked data based on extension IDL (you can get token here):

graphql-faker ./ext-gh.graphql --extend https://api.github.com/graphql \
--header "Authorization: bearer <TOKEN>"

Usage

graphql-faker [options] [IDL file]

[IDL file] - path to file with IDL. If this argument is omited Faker uses default file name.

Options

  • -p, --port HTTP Port [default: env.PORT or 9002]
  • -e, --extend URL to existing GraphQL server to extend
  • -o, --open Open page with IDL editor and GraphiQL in browser
  • -H, --header Specify headers to the proxied server in cURL format, e.g.: Authorization: bearer XXXXXXXXX
  • --forward-headers Headers that should be forwarded to the proxied server
  • --co, --cors-origin CORS: Specify the origin for the Access-Control-Allow-Origin header
  • -h, --help Show help

Development

yarn
npm run build:all
npm run start

graphql-faker's People

Contributors

cajames avatar declaneugeneleekennedy avatar donniewest avatar ivangoncharov avatar jameskyburz avatar ojczeo avatar romanhotsiy avatar securingsincity avatar wtgtybhertgeghgtwtg avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.