graphql-hotels-example

GraphQL server example. Country/City/Hotel structure.

  • 所有者: r0b1n/graphql-hotels-example
  • 平台:
  • 许可证: MIT License
  • 分类:
  • 主题:
  • 喜欢:
    0
      比较:

Github星跟踪图

graphql-hotels-example

Tired of TodoMVC? So do I.

What is it?

This is yet another example of GraphQL server.
It provides you GraphQL backend, so you can play with queries in the GraphiQL.
While implementing this example I was trying to keep backend simple but provide clear and meaningful schema.

Features

  • To keep it simple this example uses in-memory storage. Initial data located in data.json file.
  • GraphiQL tool enabled and it is a way to play with GraphQL.
  • There is no frontend part. (But it would be good to implement example clients using Relay. react-native example in progress.)

Domain, Diagram and Schema. Small Intro.

What is our app about?

Let's imagine we are developing tourist guide program.

  • There is information about Countries our user may plan to visit.
  • Each Country contains Cities.
  • And each City has a bunch of Hotels.

Wait, what the backend without nice images? We will add Image to Country and list of Images for each City.

Now we can review the Relations Diagram.

Relations Diagram

relations diagram

Schema

Our schema allow us to fetch any shape of data.
For this we need to add entry points for lists and individual entity:

  • countries - List of Countries. For index page of our application with countries.
  • country(countryID) - Particular Country by ID. For individual Country page.
  • city(cityID) - Particular City by ID. For individual City page.
  • hotel(hotelID) - Particular Hotel by ID. For individual Hotel page.
About node entry point.

Have you noticed some kind of duplication in country, city, hotel?
For avoiding this Relay provides us ability to use one entry point for all individual entities called node:

  • node(ID) - Where ID is GraphQL UUID.
    For more information check this

But in this example I am going to leave all the entry points available.

How to run

  1. Install dependencies:
    npm install

  2. Run the server
    npm start

  3. Go to http://localhost:3000/graphql to open GraphiQL.

主要指标

概览
名称与所有者r0b1n/graphql-hotels-example
主编程语言JavaScript
编程语言JavaScript (语言数: 1)
平台
许可证MIT License
所有者活动
创建于2016-01-23 20:42:51
推送于2016-08-08 23:54:53
最后一次提交2016-08-09 02:54:53
发布数0
用户参与
星数7
关注者数2
派生数1
提交数14
已启用问题?
问题数2
打开的问题数2
拉请求数0
打开的拉请求数0
关闭的拉请求数0
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?