クラス DataFetcherExceptionResolverAdapter
java.lang.ObjectSE
org.springframework.graphql.execution.DataFetcherExceptionResolverAdapter
- 実装済みのインターフェース一覧:
DataFetcherExceptionResolver
- 既知の直属サブクラス
SecurityDataFetcherExceptionResolver
public abstract class DataFetcherExceptionResolverAdapter
extends ObjectSE
implements DataFetcherExceptionResolver
非同期契約を事前実装し、次の同期保護メソッドを公開する
DataFetcherExceptionResolver のアダプター:resolveToSingleError(java.lang.Throwable, graphql.schema.DataFetchingEnvironment)resolveToMultipleErrors(java.lang.Throwable, graphql.schema.DataFetchingEnvironment)
アプリケーションは、resolveToSingleError(Throwable, DataFetchingEnvironment) のショートカットとして DataFetcherExceptionResolver.forSingleError(BiFunction) を使用することもできます。
実装は、setThreadLocalContextAware(boolean) を介して、基になるトランスポートスレッドから ThreadLocal コンテキストの伝播に関心を示すこともできます。
- 導入:
- 1.0.0
- 作成者:
- Rossen Stoyanchev
フィールド概要
フィールドコンストラクター概要
コンストラクター修飾子コンストラクター説明protectedこのクラスは、実際の例外解決ロジックを提供するために拡張されることを意図しているため、protected コンストラクター。方法の概要
修飾子と型メソッド説明booleanこのリゾルバーの ThreadLocal コンテキストを復元する必要があるかどうか。final reactor.core.publisher.Mono<ListSE<graphql.GraphQLError>> resolveException(ThrowableSE ex, graphql.schema.DataFetchingEnvironment env) 指定された例外を解決し、エラーを返してレスポンスに追加します。protected @Nullable ListSE<graphql.GraphQLError> resolveToMultipleErrors(ThrowableSE ex, graphql.schema.DataFetchingEnvironment env) このメソッドをオーバーライドして、例外を複数の GraphQL エラーに解決します。protected @Nullable graphql.GraphQLErrorresolveToSingleError(ThrowableSE ex, graphql.schema.DataFetchingEnvironment env) このメソッドをオーバーライドして、例外を単一の GraphQL エラーに解決します。voidsetThreadLocalContextAware(boolean threadLocalContextAware) サブクラスはこれを設定して、トランスポートハンドラーからの ThreadLocal コンテキストを示すことができます (例:
フィールドの詳細
logger
protected final org.apache.commons.logging.Log logger
コンストラクターの詳細
DataFetcherExceptionResolverAdapter
protected DataFetcherExceptionResolverAdapter()このクラスは、実際の例外解決ロジックを提供するために拡張されることを意図しているため、protected コンストラクター。
メソッドの詳細
setThreadLocalContextAware
public void setThreadLocalContextAware(boolean threadLocalContextAware) サブクラスはこれを設定して、例外を解決するときにトランスポートハンドラー (HTTP ハンドラーなど) からの ThreadLocal コンテキストを復元する必要があることを示すことができます。注意 : このプロパティは、トランスポートが ThreadLocal のもの (例: Spring MVC) を使用し、対象の ThreadLocal 値を抽出するために
ThreadLocalAccessorが登録されている場合にのみ適用されます。それ以外の場合、このプロパティを設定しても影響はありません。デフォルトでは、これは "false" に設定されています。この場合、ThreadLocal コンテキストの伝播は試行されません。
- パラメーター:
threadLocalContextAware- このリゾルバーが ThreadLocal コンテキストにアクセスする必要があるかどうか。
isThreadLocalContextAware
public boolean isThreadLocalContextAware()このリゾルバーの ThreadLocal コンテキストを復元する必要があるかどうか。resolveException
public final reactor.core.publisher.Mono<ListSE<graphql.GraphQLError>> resolveException(ThrowableSE ex, graphql.schema.DataFetchingEnvironment env) インターフェースからコピーされた説明:DataFetcherExceptionResolver指定された例外を解決し、エラーを返してレスポンスに追加します。実装では、
GraphqlErrorBuilder.newError(DataFetchingEnvironment)を使用してターゲットフィールドの座標でエラーを作成し、ErrorTypeを使用してエラーのカテゴリを指定できます。- 次で指定:
- インターフェース
DataFetcherExceptionResolverのresolveException - パラメーター:
ex- 解決する例外env- 呼び出されたDataFetcherの環境- 戻り値:
- GraphQL レスポンスに追加するエラーのある
Mono。Monoが空のリストで完了した場合、レスポンスにエラーが追加されることなく例外が解決されます。Monoがリストを発行せずに空で完了すると、例外は未解決のままになり、他のリゾルバーがそれを解決できるようになります。
resolveToMultipleErrors
protected @Nullable ListSE<graphql.GraphQLError> resolveToMultipleErrors(ThrowableSE ex, graphql.schema.DataFetchingEnvironment env) このメソッドをオーバーライドして、例外を複数の GraphQL エラーに解決します。- パラメーター:
ex- 解決する例外env- 呼び出されたDataFetcherの環境- 戻り値:
- 解決されたエラーまたは未解決の場合は
null
resolveToSingleError
protected @Nullable graphql.GraphQLError resolveToSingleError(ThrowableSE ex, graphql.schema.DataFetchingEnvironment env) このメソッドをオーバーライドして、例外を単一の GraphQL エラーに解決します。- パラメーター:
ex- 解決する例外env- 呼び出されたDataFetcherの環境- 戻り値:
- 解決されたエラー、または未解決の場合は
null