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