Apollo-link-rest: Como fazer chamadas para URLs arbitrários?

Criado em 16 fev. 2019  ·  7Comentários  ·  Fonte: apollographql/apollo-link-rest

Oi,

Existe alguma maneira de chamar URLs arbitrários em consultas?

Os documentos dizem que path na diretiva @rest pode ter um caminho ou um URL completo. No entanto, ao passar a seguinte consulta, obtenho erros:

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.)

Quando eu passo path="${encodeURIComponent('https://foo.com/foo')}" , o link REST tenta atingir https://[my current url]https%3A%2F%2Ffoo.com%2Ffoo .

pathBuilder mesma forma anexa meu caminho construído ao meu URL original.

A única opção é registrar todos os URLs que seu aplicativo chamará na configuração do link REST? Nesse caso, acho que os documentos devem ser atualizados para refletir path não pegando URLs completos.

bug 🐛 help wanted 🛠

Todos 7 comentários

Obrigado por relatar isso @ timhwang21 Este é definitivamente um bug que foi introduzido cerca de um ano atrás.

Acho que muitas pessoas configuram seus "pontos de extremidade básicos" uma vez para todo o RestLink, então acho que as pessoas não estavam usando muito esse recurso. - Suprimir este aviso e restaurar o suporte para urls completos na anotação @rest() deve ser bastante simples.

Eu apoiaria ajudando a revisar um PR, se alguém quiser contribuir com a correção.

Incrível, posso dar uma folga no fim de semana. @fbartho , você tem alguma

@ timhwang21 Infelizmente, só temos um arquivo-fonte na base de código, não é incrivelmente longo, mas imagino que você precise mudar vários lugares no arquivo.

Eu encontrei isso e encontraria valor em permitir um url completo no caminho ou outra opção para definir um novo url, como url: "https://domain.com/api/path/1" .

@ timhwang21 você conseguiu fazer alguma coisa?

Fwiw aqui é um pequeno trabalho em torno que fiz para fazê-lo funcionar nesse meio tempo.

  1. Especifique um endpoint empty na configuração. Observe que há um espaço real no valor empty: ' ' .
    image
  2. Use isso como ponto de extremidade em sua consulta, aqui está um exemplo de resolução de solicitações em cascata ...
    image

É basicamente isso.

Não, acabamos migrando nosso serviço restante para o GraphQL.

Na segunda-feira, 22 de julho de 2019 às 9h14, Mat Silva [email protected] escreveu:

Eu encontrei isso e encontraria valor em permitir um url completo no caminho ou
outra opção para definir um novo url, como url: "
https://domain.com/api/path/1 ".

@ timhwang21 https://github.com/timhwang21 você conseguiu chicotear
alguma coisa?

Fwiw aqui é um pequeno trabalho em torno que fiz para fazê-lo funcionar nesse meio tempo.

  1. Especifique um endpoint vazio na configuração. Observe que há um verdadeiro
    espaço no valor vazio: ''.
    [imagem: imagem]
    https://user-images.githubusercontent.com/4511972/61635093-c85eba80-ac60-11e9-87aa-eae6cf788e59.png
  2. Use isso como ponto de extremidade em sua consulta, aqui está um exemplo de
    resolvendo solicitações de cascata ...
    [imagem: imagem]
    https://user-images.githubusercontent.com/4511972/61635160-f0e6b480-ac60-11e9-8879-e78f0ae4d982.png

É basicamente isso.

-
Você está recebendo isso porque foi mencionado.
Responda a este e-mail diretamente, visualize-o no GitHub
https://github.com/apollographql/apollo-link-rest/issues/192?email_source=notifications&email_token=ABMPWCWNFOUEL4WFA3GSY7TQAWXEZA5CNFSM4GX3BPZ2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOD2P4BCQ#issuecomment-513785994 ,
ou silenciar o tópico
https://github.com/notifications/unsubscribe-auth/ABMPWCVPMVEBZQSMS2CGQQLQAWXEZANCNFSM4GX3BPZQ
.

resto serviço para GraphQL.

sim, isso vai funcionar também: sorriso:

Tive esse problema ao consumir uma combinação de APIs do Github, algumas das quais ainda não estão na API GraphQL. Sua API Rest tem muitos campos de URL absolutos que eu seria capaz de exportar e reutilizar, no entanto, a captura : está impedindo que funcione. No entanto, a solução alternativa de

Esta página foi útil?
0 / 5 - 0 avaliações