Как получить данные бабушки и дедушки в резольвере graphql? - PullRequest
2 голосов
/ 22 января 2020

Я новичок в GraphQL. Я упаковываю REST API с GraphQL, моя проблема в том, что я не получаю ингредиенты ресторанных блюд (бабушки и дедушки), просто получаю ингредиенты ди sh (родители). Это моя схема

type Restaurant{
  id_restaurant: String
  name: String
  dishes:[Dish]
}

type Dish{
  id_dish: String
  name: String
  ingredients:[Ingredient]
}

type Ingredient{
  id_ingredient: String
  name: String
}

type Query{
  restaurants: [Restaurant]
  dishes: [Dish]
  ingredients: [Ingredient] 
}

Это мои распознаватели

const mainURL = `https://my_apy_example`

const resolvers = {
  Query: {
    restaurants: () => { return fetch(`${mainURL}/restaurants`).then(res => res.json()) },
    dishes: () => { return fetch(`${mainURL}/dishes`).then(res => res.json()) },
    ingredients: () => { return fetch(`${mainURL}/ingredients`).then(res => res.json()) },  
  },
  Restaurant: {
    dishes: parent => {
      const { id_restaurant } = parent
      return fetch(`${mainURL}/dishes?id_restaurant=${id_restaurant}`).then(res => res.json())
    },
  },
  Dish: {
    ingredients: parent => {
      const { id_dish } = parent
      return fetch(`${mainURL}/ingredients?id_dish=${id_dish}`).then(res => res.json())
    },
  },
}

Я предположил, что распознаватель Di sh также разрешил блюда ресторана, но я думаю, что для этого мне нужен другой распознаватель, я ошибся.

В этом запросе не показаны ингредиенты

query{
  restaurants{
    name
    dishes{
      name
      ingredients{
        name
      }
    }
  }
}

В этом запросе показаны ингредиенты

query{
  dishes{
    name
    ingredients{
      name
    }
  }
}
}

Любое решение?

...