Как передать параметр в запрос 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 просто блокирует любой параметр.



Любой человек имеет подобный опыт и может дать любой предложения?

442   1  

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

    Ничего не найдено.