Size: a a a

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

2021 September 21

LL

Lama Lover in GraphQL — русскоговорящее сообщество
Так вот, не противоречит ли спецификации GraphQL изменения ключа в ответе на мутацию:
Например, есть mutation createUser, и при вызове мутации, в ответе возвращается {"data": {"createUser": ...}}
Можно ли сделать так, чтобы возвращалось что-то типа {"data": {"userThatWasCreated": ...}} и это не нарушало спецификацию GraphQL ?
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Вы сами можете именовать мутацию же, в чем трабла то?) Как и квери можете комбинировать и именовать
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Кеш все равно по typename составляется
источник

LL

Lama Lover in GraphQL — русскоговорящее сообщество
Ну я хочу чтобы имя у мутации было одно, а в результате в data было другое.
Мне это не особо важно и не критично, просто возник такой вопрос
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Вы можете так делать, это ничего не нарушает
источник

LL

Lama Lover in GraphQL — русскоговорящее сообщество
А случайно не знаете, может ли такое сломать какие-нибудь grahpql-клиенты?
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Нет, так как кеширование по __typename как я говорил выше
источник

ОЛ

Олег Линьков... in GraphQL — русскоговорящее сообщество
Я тоже обожаю авангард в искусстве :) Хорошие картинки
источник

LL

Lama Lover in GraphQL — русскоговорящее сообщество
Понял, спасибо
источник

TL

Timur Lastaev in GraphQL — русскоговорящее сообщество
Можно алиасы использовать
mutation CreateUser {
 userThatWasCreated : createUser { ... }
}
источник

LL

Lama Lover in GraphQL — русскоговорящее сообщество
О, да, спасибо! Как раз то что нужно было
источник
2021 September 22

AO

Alexander Ovchinniko... in GraphQL — русскоговорящее сообщество
тут обсуждалась тема с ошибками, я наткнулся в документации Apollo на ссылку на видео https://www.youtube.com/watch?v=RDNTP66oY2o
источник

AO

Alexander Ovchinniko... in GraphQL — русскоговорящее сообщество
из интересного там - https://youtu.be/RDNTP66oY2o?t=1379 (таймкод с запросом)
источник

AO

Alexander Ovchinniko... in GraphQL — русскоговорящее сообщество
как вам идея называть вместо profileImage, например, profileImageResult? и так по всем связям
источник

P@

Pavel @nodkz in GraphQL — русскоговорящее сообщество
только там где это реально требуется фронту. Иначе они вас ненавидеть будут.

Минус доклада Саши в том, что она не разделяет квери и мутации. У них, из моей практики, совершенно разные поведения с ошибками должны быть.

Как у меня:
- в 99% кверей ошибка вылетает на самом верхнем уровне в errors
- в 99% мутация в MutationResult я ложу поля error и result.

Юнионы избегаю по максимому везде, т.к. на фронте с ними не шибко удобно и прозрачно работать.
источник

AO

Alexander Ovchinniko... in GraphQL — русскоговорящее сообщество
Я чувствую, мне хочется ещё изучить популярные сервисы типа Hasura, как там сделано это…
источник

AO

Alexander Ovchinniko... in GraphQL — русскоговорящее сообщество
Если я правильно понял её подход, то она ожидает проверку типа от фронтендера
источник

AO

Alexander Ovchinniko... in GraphQL — русскоговорящее сообщество
В её видео или в другом на том же канале было про опциональные поля. То есть лучше чтобы фронтендеры заморочились с проверками чтобы при необходимости можно было бы сломать API контракт (точнее, схему) :-)
источник

AO

Alexander Ovchinniko... in GraphQL — русскоговорящее сообщество
Мне в целом юнионы симпатичны из-за своего рода типизации
источник

AO

Alexander Ovchinniko... in GraphQL — русскоговорящее сообщество
По идее запросы нужны чтобы обновлять кеш Apollo Client’а, а не для того чтобы результат как-то парсить вручную, то есть они не должны сильно мешать…
источник