Apollo-link-rest: Как звонить по произвольным URL?

Созданный на 16 февр. 2019  ·  7Комментарии  ·  Источник: apollographql/apollo-link-rest

Привет,

Есть ли способ вызывать произвольные URL-адреса в запросах?

Документы говорят, что path в директиве @rest может принимать путь или полный URL. Однако при передаче следующего запроса я получаю ошибки:

query getFoo {
  foo @rest(type: "Foo", path: "https://foo.com/foo") {
    bar
  }
}
Deprecated: '@rest(path:' contains a ':' colon, this format will be removed in future versions
index.js:1446 [Network error getIP]: Missing parameters to run query, specify it in the query params or use an export directive. (If you need to use ":" inside a variable string make sure to encode the variables properly using `encodeURIComponent`. Alternatively see documentation about using pathBuilder.)

Когда я затем передаю path="${encodeURIComponent('https://foo.com/foo')}" , ссылка REST пытается попасть в https://[my current url]https%3A%2F%2Ffoo.com%2Ffoo .

pathBuilder аналогичным образом добавляет мой построенный путь к моему исходному URL-адресу.

Единственный вариант - зарегистрировать каждый URL-адрес, который ваше приложение будет вызывать в настройке ссылки REST? Если это так, я думаю, что документы должны быть обновлены, чтобы отразить, что path не принимает полные URL-адреса.

bug 🐛 help wanted 🛠

Все 7 Комментарий

Спасибо, что сообщили об этом @ timhwang21. Это определенно ошибка, появившаяся около года назад.

Я предполагаю, что многие люди настраивают свои «базовые конечные точки» один раз для всего RestLink, поэтому я думаю, что люди не очень часто использовали эту функцию. - Подавление этого предупреждения и восстановление поддержки полных URL-адресов в аннотации @rest() должно быть довольно простым.

Я бы поддержал помощь в пересмотре PR, если кто-то захочет внести свой вклад в исправление.

Отлично, я могу отдохнуть на выходных. @fbartho есть ли у вас какие-нибудь

@ timhwang21 К сожалению, у нас действительно есть только один исходный файл в базе кода, он не очень длинный, но я ожидаю, что вам придется поменять несколько мест в файле.

Я столкнулся с этим и нашел ценность в том, чтобы разрешить полный URL-адрес в пути или другой вариант для определения нового URL-адреса, например url: "https://domain.com/api/path/1" .

@ timhwang21 тебе удалось что-то придумать?

Fwiw вот небольшая работа, которую я сделал, чтобы заставить его работать тем временем.

  1. Укажите конечную точку empty в конфигурации. Обратите внимание, что в значении empty: ' ' есть пробел.
    image
  2. Используйте это как конечную точку в своем запросе, вот пример разрешения водопадных запросов ...
    image

Вот и все.

У меня нет, в итоге мы перенесли наш сервис отдыха на GraphQL.

В понедельник, 22 июля 2019 г., в 9:14 Мат Сильва [email protected] написал:

Я столкнулся с этим и нашел бы смысл в том, чтобы разрешить полный URL-адрес в пути или
другой вариант определения нового URL, например url: "
https://domain.com/api/path/1 ".

@ timhwang21 https://github.com/timhwang21 ты умел хлестать
что-то случилось?

Fwiw вот небольшая работа, которую я сделал, чтобы заставить его работать тем временем.

  1. Укажите в конфиге пустую конечную точку. Обратите внимание, что есть актуальный
    пробел в значении пусто: ''.
    [image: image]
    https://user-images.githubusercontent.com/4511972/61635093-c85eba80-ac60-11e9-87aa-eae6cf788e59.png
  2. Используйте это как конечную точку в своем запросе, вот пример
    разрешение запросов водопада ...
    [image: image]
    https://user-images.githubusercontent.com/4511972/61635160-f0e6b480-ac60-11e9-8879-e78f0ae4d982.png

Вот и все.

-
Вы получаете это, потому что вас упомянули.
Ответьте на это письмо напрямую, просмотрите его на GitHub
https://github.com/apollographql/apollo-link-rest/issues/192?email_source=notifications&email_token=ABMPWCWNFOUEL4WFA3GSY7TQAWXEZA5CNFSM4GX3BPZ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2P4BCQ#issuecomment-513785994 ,
или отключить поток
https://github.com/notifications/unsubscribe-auth/ABMPWCVPMVEBZQSMS2CGQQLQAWXEZANCNFSM4GX3BPZQ
.

остальной сервис для GraphQL.

да, это тоже сработает

Столкнитесь с этой проблемой при использовании сочетания API Github, некоторых из которых еще нет в их API GraphQL. Их Rest API имеет множество полей абсолютных URL-адресов, которые я мог бы экспортировать и повторно использовать, однако : catch мешает его работе. Однако обходной путь от @matsilva взлома пустой конечной точки у меня работает.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги