Apollo-link-rest: Exemplo de Broken React-Apollo

Criado em 7 jun. 2018  ·  6Comentários  ·  Fonte: apollographql/apollo-link-rest

Olá:

Estou apenas começando com apollo-link-rest com a configuração básica em sua react-apollo codesandbox .

Em vez de exibir a lista de programas de TV, a interface mostra o seguinte erro: : Network error: Failed to execute 'fetch' on 'Window': Invalid credentials mode .

Ao replicar esse código em meu próprio ambiente create-react-app , também peguei o seguinte erro ao executar uma solicitação no Apollo DevTools:

{
  "errors": [
    {
      "message": "forward is not a function",
      "locations": [
        "TypeError: forward is not a function\n    at RestLink../node_modules/apollo-link-rest/bundle.umd.js.RestLink.request (http://localhost:3000/static/js/bundle.js:21028:20)\n    at http://localhost:3000/static/js/bundle.js:19809:33\n    at ApolloLink.request (http://localhost:3000/static/js/bundle.js:17407:12)\n    at ApolloLink.request 
    }
  ]
}

Muito obrigado pelo seu trabalho neste link! Isso torna o trabalho com REST muito mais gerenciável, trazendo recursos do tipo GraphQL para aqueles que estão presos às APIs REST.

help wanted 🛠 question❔

Comentários muito úteis

Deve ser corrigido na v0.3.1 - agora disponível!

Todos 6 comentários

@sinisterra Quando vemos forward is not a function em nosso aplicativo, geralmente é porque esquecemos uma diretiva @client ou @rest(…) em um dos nós. É esse o seu caso?

Em relação ao seu erro com fetch - em qual navegador você está testando?

@fbartho Não, estou executando exatamente a mesma consulta do exemplo, a diretiva @rest está sendo aplicada corretamente. Estou usando o Google Chrome 67.0.3396.62. Quando tentei executar o exemplo no Firefox 60.0.1, também falhou, mas com um erro diferente: Network error: 'credentials' member of RequestInit 'null' is not a valid value for enumeration RequestCredentials.

não se trata apenas do exemplo quebrado! Eu acho que esse problema é muito crítico.
Também estou recebendo o mesmo erro agora, em meu ambiente de produção, que estava funcionando bem nos últimos meses usando apollo-link-rest. Eu acho que isso deve ser devido a uma atualização do navegador.
Estou usando o cromo Version 67.0.3396.79 (Official Build) (64-bit)

O mesmo problema está acontecendo no safari e no firefox .. Eu não entendi totalmente tbh .. a mesma versão do meu aplicativo estava funcionando bem desde 24 de maio.

está acontecendo apenas com as solicitações que faço com apollo-link-rest, embora eu tenha configurado meu customFetch fn, que está funcionando. ¯_ (ツ) _ / ¯

Também estou recebendo o mesmo erro quando removo minha configuração customFetch .

Na verdade, encontrei o problema.
Estou usando uma função customFetch , que é chamada por apollo-link-rest com o parâmetro de opções credentials: null . Isso está causando este erro em todos os navegadores, incluindo a nova versão do Chrome.

minha solução rápida para minha função de busca personalizada, já que não estou usando credenciais, é a seguinte:

export function fetchWithAuth(url, options = {}) {
  // this fixes apollo-link-rest providing credentials: null options
  const { credentials, ...opt } = options
  return fetch(url, getOptions(opt));
}

Eu também estava batendo minha cabeça contra a parede, recebendo "Erro de rede: Falha ao buscar" impedindo a consulta de até mesmo ser executada com apollo-link-rest. @JuHwon está certo, isso parece estar vinculado à opção de credenciais no construtor RestLink. Embora anteriormente funcionasse como opcional de acordo com a documentação, agora só posso fazê-lo funcionar depois de incluir a opção:

const restLink = new RestLink({  
  uri: ${process.env.REACT_APP_API_URL}/,  
  credentials: 'same-origin',  // eg. or credentials: 'omit', etc
});

Deve ser corrigido na v0.3.1 - agora disponível!

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