パッケージ org.springframework.http

クラス ProblemDetail

java.lang.ObjectSE
org.springframework.http.ProblemDetail

public class ProblemDetail extends ObjectSE
RFC 9457 の問題の詳細の表現。仕様定義のプロパティと、追加の非標準プロパティの properties マップが含まれます。

拡張レスポンスの場合、アプリケーションは properties マップに追加できます。Jackson ライブラリを使用する場合、properties マップは ProblemDetailJacksonMixin を介して最上位の JSON プロパティとして展開されます。

拡張レスポンスの場合、アプリケーションは追加のプロパティを持つサブクラスを作成することもできます。サブクラスは、保護されたコピーコンストラクターを使用して、既存の ProblemDetail インスタンスをサブクラスとして再作成できます。ResponseEntityExceptionHandlerResponseEntityExceptionHandler などの @ControllerAdvice から。

導入:
6.0
作成者:
Rossen Stoyanchev, Juergen Hoeller
関連事項:
  • コンストラクターの詳細

    • ProblemDetail

      protected ProblemDetail(int rawStatusCode)
      サブクラスの protected コンストラクター。

      ProblemDetail インスタンスを作成するには、静的ファクトリメソッド forStatus(HttpStatusCode) または forStatus(int) を使用します。

      パラメーター:
      rawStatusCode - 使用するレスポンスステータス
    • ProblemDetail

      protected ProblemDetail(ProblemDetail other)
      サブクラスが追加のプロパティで ProblemDetail を再作成および拡張するために使用できるコピーコンストラクター。
    • ProblemDetail

      protected ProblemDetail()
      逆直列化のための引数なしのコンストラクター。
  • メソッドの詳細

    • setType

      public void setType(URISE type)
      problem type の Setter。

      デフォルトでは、これは BLANK_TYPE です。

      パラメーター:
      type - 問題の種類
    • getType

      public URISE getType()
      設定された problem type を返します。
    • setTitle

      public void setTitle(@Nullable StringSE title)
      problem title の Setter。

      デフォルトでは、明示的に設定されておらず、ステータスがよく知られている場合、これは HttpStatus.getReasonPhrase() から取得されます。

      パラメーター:
      title - 問題のタイトル
    • getTitle

      @Nullable public StringSE getTitle()
      設定された problem title を返します。
    • setStatus

      public void setStatus(HttpStatus httpStatus)
      problem status の Setter。
      パラメーター:
      httpStatus - 問題の状態
    • setStatus

      public void setStatus(int status)
      problem status の Setter。
      パラメーター:
      status - 問題の状態
    • getStatus

      public int getStatus()
      コンストラクターに提供されるか、setStatus(int) を介して構成された、問題に関連するステータスを返します。
    • setDetail

      public void setDetail(@Nullable StringSE detail)
      problem detail の Setter。

      デフォルトでは、これは設定されていません。

      パラメーター:
      detail - 問題の詳細
    • getDetail

      @Nullable public StringSE getDetail()
      設定された problem detail を返します。
    • setInstance

      public void setInstance(@Nullable URISE instance)
      problem instance の Setter。

      デフォルトでは、ProblemDetail が @ExceptionHandler メソッドから返されると、これはリクエストパスに初期化されます。

      パラメーター:
      instance - 問題のインスタンス
    • getInstance

      @Nullable public URISE getInstance()
      設定された problem instance を返します。
    • setProperty

      public void setProperty(StringSE name, @Nullable ObjectSE value)
      ジェネリクス properties map に追加される「動的」プロパティを設定します。

      Jackson JSON がクラスパスに存在する場合、ここで設定されたすべてのプロパティは、出力 JSON で最上位のキーと値のペアとしてレンダリングされます。それ以外の場合は、"properties" サブマップとしてレンダリングされます。

      パラメーター:
      name - プロパティ名
      value - プロパティ値。値が "null" に設定されたプロパティを含めることを意図している場合は、null の可能性があります。
      関連事項:
    • setProperties

      public void setProperties(@Nullable MapSE<StringSE,ObjectSE> properties)
      properties map の Setter。

      デフォルトでは、これは設定されていません。

      Jackson JSON がクラスパスに存在する場合、ここで設定されたすべてのプロパティは、出力 JSON で最上位のキーと値のペアとしてレンダリングされます。それ以外の場合は、"properties" サブマップとしてレンダリングされます。

      パラメーター:
      properties - プロパティマップ
      導入:
      6.0.14
    • getProperties

      @Nullable public MapSE<StringSE,ObjectSE> getProperties()
      事前に知られていないプロパティの一般的なマップを返します。プロパティが追加されていない場合は、おそらく null です。プロパティを追加するには、setProperty(String, Object) を使用します。

      Jackson JSON がクラスパスに存在する場合、このマップのコンテンツはアンラップされ、出力 JSON の最上位のキーと値のペアとしてレンダリングされます。それ以外の場合は、"properties" サブマップとしてレンダリングされます。

      関連事項:
    • equals

      public boolean equals(@Nullable ObjectSE other)
      オーバーライド:
      クラス ObjectSEequalsSE 
    • hashCode

      public int hashCode()
      オーバーライド:
      クラス ObjectSEhashCode 
    • toString

      public StringSE toString()
      オーバーライド:
      クラス ObjectSEtoString 
    • initToStringContent

      protected StringSE initToStringContent()
      ProblemDetail フィールドの文字列表現を返します。サブクラスはこれをオーバーライドして、追加のフィールドを追加できます。
    • forStatus

      public static ProblemDetail forStatus(HttpStatusCode status)
      指定されたステータスコードで ProblemDetail インスタンスを作成します。
    • forStatus

      public static ProblemDetail forStatus(int status)
      指定されたステータス値で ProblemDetail インスタンスを作成します。
    • forStatusAndDetail

      public static ProblemDetail forStatusAndDetail(HttpStatusCode status, @Nullable StringSE detail)
      指定されたステータスと詳細で ProblemDetail インスタンスを作成します。