web-dev-qa-db-ja.com

返すデータがない場合、GraphQLミューテーションの戻り値の型は何ですか?

Apollo GraphQLサーバーがあり、レコードを削除するミューテーションがあります。このミューテーションは、リソースのUUIDを受け取り、REST(Ruby on Rails)APIを呼び出します。このAPIは、削除が成功したときに、成功のHTTPコードと空のボディ(204 No Content)を返します。正常に実行され、削除が機能しない場合はエラーメッセージが表示されるHTTPエラーコード(404または500、通常RESTエンドポイントの削除)。

GraphQLミューテーションを定義するとき、ミューテーションの戻り値の型を定義する必要があります。ミューテーションリターンタイプは何ですか?

input QueueInput {
  "The queue uuid"
  uuid: String!
}


deleteQueue(input: QueueInput!): ????????

いくつかの異なるタイプの戻り値(ブール、文字列など)で動作させることができますが、試した戻り値のタイプがどれも正しく感じられなかったため、ベストプラクティスを知りたいのです。ミューテーションを呼び出した後のクライアント側で、問題が発生した場合(APIがコンテンツではなく204を返す)、または何らかのエラーが発生した場合(APIが404または500を返す)、理想的にはエラー。

5
Mario

私は、prismaでgraphqlサーバーを使用し、何かを削除するとき、prismaは削除されたものに関する情報を返します。クライアントからの削除を実行し、それに関する応答を取得すると、キャッシュを更新してUIを変更するのに役立つため、これは良いことです。