Как передать параметр в запрос graphql?
Я пытаюсь использовать Apollo graphql в проекте Meteor blaze.
Я использую пакет из swydo:blaze-apollo.
Это нормально, чтобы получить данные из mongoDB с помощью запроса graphql.
// Using this one can get data
const LOCATION_COUNTRY_QUERY = gql`
{
locations(location_type: "Country"){
location_id
name
iso_code
}
}
`;
Template.home.onCreated(function(){
const country = this.gqlQuery({query: LOCATION_COUNTRY_QUERY}).get();
console.log(country.locations); // Which will show an array list of country.
});
Тем не менее, я не хочу, чтобы жесткий код "страна" в запросе. Я хочу передать строку в запрос, а затем получить данные с другим типом location_type. Но я не могу найти ни одной статьи об этом, и синтаксис gql просто блокирует любой параметр.
Любой человек имеет подобный опыт и может дать любой предложения?
1 ответ:
Для выполнения этой задачи можно использовать переменные GraphQL. Во-первых, объявите переменную для вашего
LOCATION_COUNTRY_QUERY:const LOCATION_COUNTRY_QUERY = gql` query locationCountryQuery($locationType: String!){ locations(location_type: $locationType){ location_id name iso_code } } `;Теперь вы можете предоставить новую опцию
variablesдля запроса:Template.home.onCreated(function(){ const country = this.gqlQuery({query: LOCATION_COUNTRY_QUERY, variables: {locationType: "Country"}).get(); console.log(country.locations); // Which will show an array list of country. });
Comments