API GraphQl выбрать значения c - PullRequest
       0

API GraphQl выбрать значения c

0 голосов
/ 05 февраля 2020

У меня следующий запрос:

{
  allPeople {
    people {
      name
      filmConnection {
        films {
          title
        }
      }
    }
  }
}

Я хотел бы выбрать всех людей, которые имеют отношение к фильму с названием «новая надежда». Как выбрать эту конкретную c вещь из API. Я также мог бы просто получить это и обработать в коде. Но, безусловно, есть лучший способ.

Что бы я ожидал:

{
  allPeople {
    people {
      name
      filmConnection {
        films {
          title : "a new hope"
        }
      }
    }
  }
}

Это не сработало ..

Попробуйте на этой игровой площадке:

https://graphql.org/swapi-graphql?query=%7B%0A%20%20allPeople%20%7B%0A%20%20%20%20people%20%7B%0A%20%20%20%20%20%20name%0A%20%20%20%20%20%20filmConnection%20%7B%0A%20%20%20%20%20%20%20%20films%20%7B%0A%20%20%20%20%20%20%20%20%20%20title%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%7D%0A%20%20%20%20%7D%0A%20%20%7D%0A%7D%0A

1 Ответ

1 голос
/ 05 февраля 2020

запросов graphql ... не для построения запросов [sql];)

это больше для определения формы необходимых данных

параметр МОЖЕТ БЫТЬ передан более глубокому потомку (например, можно использовать для фильтрации пленок)

{
  allPeople {
    people {
      name {
        filmConnection {    
          films(title_eq:"a new hope") { 
            title
          }
        }
      }
    }
  }
}

... , если API поддерживает этот тип фильтрации для films

... но это не будет фильтровать людей - у вас будет всех людей И отфильтрованных фильмов (для всех людей), потому что фильтры не будут работать на родителей.

Вы МОЖЕТ иметь пользовательский API , который будет поддерживать такую ​​фильтрацию, например, настроенный

{
  allPeople {
    people(connectedFilmTitle_eq:"a new hope") {
      name {
        filmConnection {    
          films { 
            title
          }
        }
      }
    }
  }
}

(не склеенный автоматически) peolpe resolver может сделать запрос [на объединенные таблицы] и вернуть структуру ты просишь.

В этом случае, вероятно, вам не нужны более глубокие структуры - ...filmConnection { films { title - вы знаете эти данные раньше (параметры фильтра).

... , но, вероятно, у вас есть многие2many Отношение и цент обращают этот запрос :

{
  allFilms {
    films(title_eq:"a new hope") {
      title {
        peoleConnection {    
          people { 
            name
          }
        }
      }
    }
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...