Size: a a a

Apollo — русскоговорящее сообщество

2018 September 20

SS

Serhey Shmyg in Apollo — русскоговорящее сообщество
можно и так и так разрулить что угодно.
источник

V

Vlad Nechyporchuk in Apollo — русскоговорящее сообщество
ну да, логично)) ладно, спасибо за инфу
источник
2018 September 21

SS

Serhey Shmyg in Apollo — русскоговорящее сообщество
Привет, можно ли как то в аполло кетчить ошибки мутации где то в одном месте централизовано? что бы не тулить кетч для каждого метода который дергаешь?
источник

SL

Semen Levenson in Apollo — русскоговорящее сообщество
Serhey Shmyg
Привет, можно ли как то в аполло кетчить ошибки мутации где то в одном месте централизовано? что бы не тулить кетч для каждого метода который дергаешь?
посмотрите в сторону apollo-link-error
источник

SS

Serhey Shmyg in Apollo — русскоговорящее сообщество
Вот сижу его колупаю, но там можно только отменить ошибку( а кетч сделать низя
источник
2018 September 22

U

Uxname in Apollo — русскоговорящее сообщество
Кто-нибудь знает, как можно отправить файл через graphql-request или ему подобную библиотеку на ApolloServer ?
Схема мутации на сервере такая:
addFile(file: Upload): String.
Код клиента на скрине
источник

J

Javed in Apollo — русскоговорящее сообщество
Uxname
Кто-нибудь знает, как можно отправить файл через graphql-request или ему подобную библиотеку на ApolloServer ?
Схема мутации на сервере такая:
addFile(file: Upload): String.
Код клиента на скрине
Ванила GraphQL не поддерживает чистые файли, он в основном работает с данными которые можно серализовать через сеть
если так использовать как выше то лучше файл сначало encode'ить и отправлять и тоже время на сервер резвольвер будет декодить его обратно

Дальше можно читать тут
https://medium.freecodecamp.org/how-to-manage-file-uploads-in-graphql-mutations-using-apollo-graphene-b48ed6a6498c
и
https://www.apollographql.com/docs/guides/file-uploads.html

Поправь если я ошибаюсь
источник

U

Uxname in Apollo — русскоговорящее сообщество
десериалиовывать дорого на сервере, особенно если файлы по 3-5мб.
По ссылкам насколько я понял пример для отправки файла с фронта (apollo-upload-client
), а мне надо с одного бэка на ноде отправить на второй бэк на ноде
источник

U

Uxname in Apollo — русскоговорящее сообщество
может быть так проще будет, поменяю вопрос, как сделать multipart запрос через graphql-request ?
источник

U

Uxname in Apollo — русскоговорящее сообщество
Ну или может проще тогда через rest сделать один метод, а в схеме graphql указать его с плейсхолдером мол "use POST /uploadFile method instead"
источник
2018 September 23

J

Javed in Apollo — русскоговорящее сообщество
Uxname
может быть так проще будет, поменяю вопрос, как сделать multipart запрос через graphql-request ?
Посмотрел source code, graphql-request, там нет такой возможности, он делает json. Stringify и отправлет метод POST'ом
источник

J

Javed in Apollo — русскоговорящее сообщество
async request<T extends any>(
   query: string,
   variables?: Variables,
 ): Promise<T> {
   const { headers, ...others } = this.options

   const body = JSON.stringify({
     query,
     variables: variables ? variables : undefined,
   })

   const response = await fetch(this.url, {
     method: 'POST',
     headers: Object.assign({ 'Content-Type': 'application/json' }, headers),
     body,
     ...others,
   })

   const result = await getResult(response)

   if (response.ok && !result.errors && result.data) {
     return result.data
   } else {
     const errorResult =
       typeof result === 'string' ? { error: result } : result
     throw new ClientError(
       { ...errorResult, status: response.status },
       { query, variables },
     )
   }
 }
источник
2018 September 25

PD

Push Dot in Apollo — русскоговорящее сообщество
Здравствуйте, подскажите, возможно ли вообще как-то получить http код ответа после запроса?
источник

PD

Push Dot in Apollo — русскоговорящее сообщество
Исходя из того, что я нагуглил - эту проблему не могут пофиксить уже больше года почему-то
источник

U

Uxname in Apollo — русскоговорящее сообщество
Извиняюсь что не по теме, а зачем вам нужно http код?
источник

PD

Push Dot in Apollo — русскоговорящее сообщество
Ну мне надо разлогинить юзера, если вылетел 401
источник

BS

Boris Shabanov in Apollo — русскоговорящее сообщество
Для этого не нужно смотреть на http status
источник

PD

Push Dot in Apollo — русскоговорящее сообщество
А куда смотреть?
источник

U

Uxname in Apollo — русскоговорящее сообщество
как вариант - можно на сервере ApolloError делать, там можно код ошибки указать, а на клиенте по нему смотреть
источник

PD

Push Dot in Apollo — русскоговорящее сообщество
Раньше вроде вот так можно было, но щас нифига, statusCode нету в ошибке
 const logoutAfterware = onError(({ networkError }) => {
  console.dir(networkError);
  if (networkError && networkError.statusCode === 401){
    // logout
  }
 });
источник