をスローしたときに、私はREST APIを消費しGraphQLサーバを構築するためにgraphql-server-express
を使用していますリダイレクトします。GraphQLは、リゾルバがエラー
ユーザーがリソースへのアクセスを認証されていない場合、REST呼び出しが301または401のステータスコードを返す可能性があります。私は、クライアント上で設定され、GraphQLクエリを解決している間にREST APIに転送されたCookieを使用しています。
このようなエラーが発生した場合、GraphQLエンドポイントの呼び出しに応じてクライアントに301リダイレクトを送信することはできますか?
にres.sendStatus(301) …
のようなものを試しましたが、後でgraphql-server-express
がヘッダーを設定しようとしているため、これはうまく機能しません。
私もこのようなものでショートにしようとしたgraphqlExpress
ミドルウェアに試してみた:クライアントが正しい結果を受信しながら
export default graphqlExpress((req, res) => {
res.sendStatus(301);
return;
});
、サーバーはまだこの場合TypeError: Cannot read property 'formatError' of undefined
で(エラーを出力します - 最もおそらくミドルウェアは空のオプションを受け取るため)。
この作業を取得するためにどのように良い方法はありますか?ありがとう!
どこにリダイレクト? GraphQLのリダイレクトは実際には意味がありません。クライアントが2つのルートノードを持つクエリを送信し、成功した(ログインする必要はなく)ものが1つ失敗した場合、何を送信しますか、300または200ですか? –
少なくとも1つのフィールドに障害が発生した場合、私のケースではリダイレクトを送信する必要があります。 – amann
しかしgraphqlクエリは、ログインページをロードするブラウザを意味するものではありませんリダイレクトを送信jsut、直接ではなく、ブラウザによって、JSコードによって実行されています。あなたのgraphqlクライアントは、このレスポンスコードを検出し、それが起こったとき何かをするためにハードコードされる必要があります。 –