Привет,
Только что обновили библиотеку и возникли проблемы с обновлением. Без каких-либо изменений функциональность работает должным образом с предупреждением о переходе на новый стиль. Когда я вношу необходимые изменения, как показано ниже, я получаю, что и {args}, и {args.name} не определены. Вот код:
const restLink = new RestLink({
uri: 'https://avoindata.prh.fi/bis/v1',
typePatcher: {
BusinessPayload: data => ({
...data,
results: data.results.map(business => ({
__typename: 'Business',
...business
}))
})
}
});
const client = new ApolloClient({
link: restLink,
cache: new InMemoryCache()
});
const query = gql`
query($name: String!) {
companies(name: $name)
@rest(
type: "BusinessPayload"
path: "?totalResults=false&maxResults=10&resultsFrom=0&name={args.name}"
) {
results {
name
businessId
}
}
}
`;
// And then call the query:
client.query({ query, variables: { name: value } });
Я что-то упускаю?
Та же проблема. Только что получил неопределенное значение с использованием нового стиля {args.id}.
Отличный улов @karensg @haipengz - это ключевой приоритет для меня, но вчера меня прервали, прежде чем я смог полностью протестировать эти изменения.
@karensg Хотя ваш синтаксис должен работать (а это ошибка, в которой нет), я намеревался использовать api несколько иначе.
Вместо: path: "?totalResults=false&maxResults=10&resultsFrom=0&name={args.name}"
Я рассчитывал, что это будет: path: "?totalResults=false&maxResults=10&resultsFrom=0&{args}"
{args}
или {args.query.deeper}
берет объект, на который указывает путь ключа, а затем превращает его в строку запроса. Итак, &{args}
в вашей ситуации будет { name: "foo" }
становится &name=foo
где foo автоматически вызывает encodeURIComponent
.
Я считаю это своей второй приоритетной задачей, но я тушу пожары на работе, поэтому не займусь этим до полудня. В общем, я ценю любую помощь, которую вы можете оказать, вы можете найти меня в Slack ApolloGraphQL в комнате # apollo-link-rest.
Одна вещь, которая была бы действительно полезной / ускорила бы мое исправление, - это некоторый код для модульных тестов для каждого случая, который вы используете, поэтому я могу убедиться, что он работает для вас в будущем.
Исправлено в v0.4.1: https://github.com/apollographql/apollo-link-rest/releases/tag/v0.4.1 Пожалуйста, дайте мне знать, если вы все еще видите это!
@fbartho Спасибо за исправления! Теперь он работает для моего варианта использования.
Спасибо еще раз!
После обновления до v0.4.1 новый стиль {args.id} теперь работает в моем случае, больше не определен.
...
const GET_DOG_IMAGES_BY_BREED = gql`
query breeds ($breed: String!) {
imagesByBreed(breed: $breed) @rest(
type: "imagesByBreedResult"
path: "breed/{args.breed}/images"
endpoint: "dogApi"
) {
status
message
}
}
`
...
<Query query={GET_DOG_IMAGES_BY_BREED}
notifyOnNetworkStatusChange
variables={{ breed: 'hound' }}
>
{({ refetch, error, data, networkStatus, }) => {
expect(error).toBeUndefined()
expect(data).toBeDefined()
}}
</Query>
...
Самый полезный комментарий
Исправлено в v0.4.1: https://github.com/apollographql/apollo-link-rest/releases/tag/v0.4.1 Пожалуйста, дайте мне знать, если вы все еще видите это!