#typescript #graphql #template-strings
#typescript #graphql #шаблон-строки
Вопрос:
Я пытаюсь выполнить запрос graphql с использованием пакета npm graphql-request
. Я обнаруживаю использование литералов шаблона.
async getCandidate(userId: number) {
const query = gql`
query($userId: ID){
candidate(id: $userId){
id _id source phone
}
}
`
const variables = {userId: "/api/candidates/" userId}
return await request(GRAPHQL_URL, query, variables)
}
Я пытаюсь использовать usedId
переменную, но у меня возникает ошибка :
Variable "$userId" of type "ID" used in position expecting type "ID!".: {"response":{"errors":[{"message":"Variable "$userId" of type "ID" used in position expecting type "ID!".","extensions":{"category":"graphql"},"locations":[{"line":2,"column":9},{"line":3,"column":19}]}],"status":200},"request":{"query":"nttquery($userId: ID){ntt candidate(id: $userId){ntt id _id source phonentt }ntt}ntt","variables":{"userId":"/api/candidates/1"}
Ответ №1:
Вам просто нужно изменить это query($userId: ID){
на это query($userId: ID!){
Это потому, что схема определяет, что значение для userId
должно быть ненулевым.