Действия Apollo / GraphQL, которые не являются ни мутациями, ни запросами - PullRequest
1 голос
/ 10 июля 2019

Иногда вам нужно, чтобы ваш API выполнял действие, не требующее извлечения или манипулирования данными.Например, отправка электронного письма «Забыли пароль» или взаимодействие со сторонним API.

Есть ли у Apollo (или самого GraphQL) рекомендуемый способ для этого?

Если нет, чтоСуществуют ли решения для достижения этой цели, но при этом все еще используются преимущества Apollo (такие как проверка схем / типов)?

1 Ответ

4 голосов
/ 10 июля 2019

Различие между запросами и мутациями в основном академическое .В то время как спецификация определяет мутацию как «запись с последующим извлечением», вы можете думать о запросах как о идемпотентных и не имеющих побочных эффектов , тогда как мутации - это все, что, ну, в общем, нет.В этом смысле запрос на сброс пароля не может ничего изменить в вашей базе данных, но он, безусловно, не свободен от побочных эффектов и поэтому должен быть мутацией.

Как правило, все, что можно описать какдействие («создать», «обновить», «сбросить», «отправить» и т. д.), вероятно, должно быть мутацией.Это также влияет на использование клиента, поскольку многие клиенты (например, Apollo) ожидают, что мутации будут использоваться иначе, чем запросы на стороне клиента.

...