マッピング (mappings)

mappings エンドポイントは、アプリケーションのリクエストマッピングに関する情報を提供します。

マッピングの取得

マッピングを取得するには、次の curl ベースの例に示すように、GET リクエストを /actuator/mappings に作成します。

$ curl 'http://localhost:43107/actuator/mappings' -i -X GET \
    -H 'accept-encoding: gzip' \
    -H 'user-agent: ReactorNetty/1.1.20' \
    -H 'accept: */*'

結果のレスポンスは次のようになります。

HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Transfer-Encoding: chunked
Date: Thu, 20 Jun 2024 09:58:06 GMT
Content-Length: 5342

{
  "contexts" : {
    "application" : {
      "mappings" : {
        "dispatcherServlets" : {
          "dispatcherServlet" : [ {
            "handler" : "Actuator root web endpoint",
            "predicate" : "{GET [/actuator], produces [application/vnd.spring-boot.actuator.v3+json || application/vnd.spring-boot.actuator.v2+json || application/json]}",
            "details" : {
              "handlerMethod" : {
                "className" : "org.springframework.boot.actuate.endpoint.web.servlet.WebMvcEndpointHandlerMapping.WebMvcLinksHandler",
                "name" : "links",
                "descriptor" : "(Ljakarta/servlet/http/HttpServletRequest;Ljakarta/servlet/http/HttpServletResponse;)Ljava/util/Map;"
              },
              "requestMappingConditions" : {
                "consumes" : [ ],
                "headers" : [ ],
                "methods" : [ "GET" ],
                "params" : [ ],
                "patterns" : [ "/actuator" ],
                "produces" : [ {
                  "mediaType" : "application/vnd.spring-boot.actuator.v3+json",
                  "negated" : false
                }, {
                  "mediaType" : "application/vnd.spring-boot.actuator.v2+json",
                  "negated" : false
                }, {
                  "mediaType" : "application/json",
                  "negated" : false
                } ]
              }
            }
          }, {
            "handler" : "Actuator web endpoint 'mappings'",
            "predicate" : "{GET [/actuator/mappings], produces [application/vnd.spring-boot.actuator.v3+json || application/vnd.spring-boot.actuator.v2+json || application/json]}",
            "details" : {
              "handlerMethod" : {
                "className" : "org.springframework.boot.actuate.endpoint.web.servlet.AbstractWebMvcEndpointHandlerMapping.OperationHandler",
                "name" : "handle",
                "descriptor" : "(Ljakarta/servlet/http/HttpServletRequest;Ljava/util/Map;)Ljava/lang/Object;"
              },
              "requestMappingConditions" : {
                "consumes" : [ ],
                "headers" : [ ],
                "methods" : [ "GET" ],
                "params" : [ ],
                "patterns" : [ "/actuator/mappings" ],
                "produces" : [ {
                  "mediaType" : "application/vnd.spring-boot.actuator.v3+json",
                  "negated" : false
                }, {
                  "mediaType" : "application/vnd.spring-boot.actuator.v2+json",
                  "negated" : false
                }, {
                  "mediaType" : "application/json",
                  "negated" : false
                } ]
              }
            }
          }, {
            "handler" : "org.springframework.boot.actuate.autoconfigure.endpoint.web.documentation.MappingsEndpointServletDocumentationTests$ExampleController#example()",
            "predicate" : "{POST [/], params [a!=alpha], headers [X-Custom=Foo], consumes [application/json || !application/xml], produces [text/plain]}",
            "details" : {
              "handlerMethod" : {
                "className" : "org.springframework.boot.actuate.autoconfigure.endpoint.web.documentation.MappingsEndpointServletDocumentationTests.ExampleController",
                "name" : "example",
                "descriptor" : "()Ljava/lang/String;"
              },
              "requestMappingConditions" : {
                "consumes" : [ {
                  "mediaType" : "application/json",
                  "negated" : false
                }, {
                  "mediaType" : "application/xml",
                  "negated" : true
                } ],
                "headers" : [ {
                  "name" : "X-Custom",
                  "value" : "Foo",
                  "negated" : false
                } ],
                "methods" : [ "POST" ],
                "params" : [ {
                  "name" : "a",
                  "value" : "alpha",
                  "negated" : true
                } ],
                "patterns" : [ "/" ],
                "produces" : [ {
                  "mediaType" : "text/plain",
                  "negated" : false
                } ]
              }
            }
          }, {
            "handler" : "ResourceHttpRequestHandler [classpath [META-INF/resources/webjars/]]",
            "predicate" : "/webjars/**"
          }, {
            "handler" : "ResourceHttpRequestHandler [classpath [META-INF/resources/], classpath [resources/], classpath [static/], classpath [public/], ServletContext [/]]",
            "predicate" : "/**"
          } ]
        },
        "servletFilters" : [ {
          "servletNameMappings" : [ ],
          "urlPatternMappings" : [ "/*" ],
          "name" : "requestContextFilter",
          "className" : "org.springframework.boot.web.servlet.filter.OrderedRequestContextFilter"
        }, {
          "servletNameMappings" : [ ],
          "urlPatternMappings" : [ "/*" ],
          "name" : "formContentFilter",
          "className" : "org.springframework.boot.web.servlet.filter.OrderedFormContentFilter"
        } ],
        "servlets" : [ {
          "mappings" : [ "/" ],
          "name" : "dispatcherServlet",
          "className" : "org.springframework.web.servlet.DispatcherServlet"
        } ]
      }
    }
  }
}

レスポンス構造

レスポンスには、アプリケーションのマッピングの詳細が含まれます。レスポンスで見つかった項目は、Web アプリケーションの型(リアクティブまたはサーブレットベース)によって異なります。次の表に、レスポンスの一般的な要素の構造を示します。

パス タイプ 説明

contexts

Object

ID をキーとするアプリケーションコンテキスト。

contexts.*.mappings

Object

マッピング型によってキー設定されたコンテキスト内のマッピング。

contexts.*.mappings.dispatcherServlets

Object

ディスパッチャーサーブレットマッピング(ある場合)。

contexts.*.mappings.servletFilters

Array

サーブレットフィルターマッピング(ある場合)。

contexts.*.mappings.servlets

Array

サーブレットマッピング(ある場合)。

contexts.*.mappings.dispatcherHandlers

Object

ディスパッチャーハンドラーマッピング(ある場合)。

contexts.*.parentId

String

親アプリケーションコンテキストの ID(存在する場合)。

contexts.*.mappings で見つかる可能性のあるエントリについては、次のセクションで説明します。

ディスパッチャーサーブレットのレスポンス構造

Spring MVC を使用する場合、レスポンスには contexts.*.mappings.dispatcherServlets にあるすべての DispatcherServlet リクエストマッピングの詳細が含まれます。次の表は、レスポンスのこのセクションの構造を示しています。

パス タイプ 説明

*

Array

ディスパッチャーサーブレットマッピング(ある場合)は、ディスパッチャーサーブレット Bean 名によってキー設定されます。

*.[].details

Object

マッピングに関する追加の実装固有の詳細。オプション。

*.[].handler

String

マッピングのハンドラー。

*.[].predicate

String

マッピングの述語。

*.[].details.handlerMethod

Object

このマッピングへのリクエストを処理するメソッドの詳細(ある場合)。

*.[].details.handlerMethod.className

Varies

メソッドのクラスの完全修飾名。

*.[].details.handlerMethod.name

Varies

メソッドの名前。

*.[].details.handlerMethod.descriptor

Varies

Java 言語仕様で指定されているメソッドの記述子。

*.[].details.requestMappingConditions

Object

リクエストマッピング条件の詳細。

*.[].details.requestMappingConditions.consumes

Varies

消費状態の詳細

*.[].details.requestMappingConditions.consumes.[].mediaType

Varies

消費されたメディア型。

*.[].details.requestMappingConditions.consumes.[].negated

Varies

メディア型が否定されるかどうか。

*.[].details.requestMappingConditions.headers

Varies

ヘッダー条件の詳細。

*.[].details.requestMappingConditions.headers.[].name

Varies

ヘッダーの名前。

*.[].details.requestMappingConditions.headers.[].value

Varies

ヘッダーの必須値(ある場合)。

*.[].details.requestMappingConditions.headers.[].negated

Varies

値が否定されるかどうか。

*.[].details.requestMappingConditions.methods

Varies

処理される HTTP メソッド。

*.[].details.requestMappingConditions.params

Varies

params 条件の詳細。

*.[].details.requestMappingConditions.params.[].name

Varies

パラメーターの名前。

*.[].details.requestMappingConditions.params.[].value

Varies

パラメーターの必須値(ある場合)。

*.[].details.requestMappingConditions.params.[].negated

Varies

値が否定されるかどうか。

*.[].details.requestMappingConditions.patterns

Varies

マッピングによって処理されるパスを識別するパターン。

*.[].details.requestMappingConditions.produces

Varies

生産条件の詳細。

*.[].details.requestMappingConditions.produces.[].mediaType

Varies

作成されたメディア型。

*.[].details.requestMappingConditions.produces.[].negated

Varies

メディア型が否定されるかどうか。

サーブレットのレスポンス構造

サーブレットスタックを使用する場合、レスポンスには contexts.*.mappings.servlets の Servlet マッピングの詳細が含まれます。次の表に、レスポンスのこのセクションの構造を示します。

パス タイプ 説明

[].mappings

Array

サーブレットのマッピング。

[].name

String

サーブレットの名前。

[].className

String

サーブレットのクラス名

サーブレットフィルターのレスポンス構造

サーブレットスタックを使用する場合、レスポンスには contexts.*.mappings.servletFilters の Filter マッピングの詳細が含まれます。次の表に、レスポンスのこのセクションの構造を示します。

パス タイプ 説明

[].servletNameMappings

Array

フィルターがマップされるサーブレットの名前。

[].urlPatternMappings

Array

フィルターがマップされる URL パターン。

[].name

String

フィルターの名前。

[].className

String

フィルターのクラス名

ディスパッチャーハンドラーのレスポンス構造

Spring WebFlux を使用する場合、レスポンスには contexts.*.mappings.dispatcherHandlers の DispatcherHandler リクエストマッピングの詳細が含まれます。次の表に、レスポンスのこのセクションの構造を示します。

パス タイプ 説明

*

Array

ディスパッチャーハンドラー Bean 名をキーとするディスパッチャーハンドラーマッピング(ある場合)。

*.[].details

Object

マッピングに関する追加の実装固有の詳細。オプション。

*.[].handler

String

マッピングのハンドラー。

*.[].predicate

String

マッピングの述語。

*.[].details.requestMappingConditions

Object

リクエストマッピング条件の詳細。

*.[].details.requestMappingConditions.consumes

Varies

消費状態の詳細

*.[].details.requestMappingConditions.consumes.[].mediaType

Varies

消費されたメディア型。

*.[].details.requestMappingConditions.consumes.[].negated

Varies

メディア型が否定されるかどうか。

*.[].details.requestMappingConditions.headers

Varies

ヘッダー条件の詳細。

*.[].details.requestMappingConditions.headers.[].name

Varies

ヘッダーの名前。

*.[].details.requestMappingConditions.headers.[].value

Varies

ヘッダーの必須値(ある場合)。

*.[].details.requestMappingConditions.headers.[].negated

Varies

値が否定されるかどうか。

*.[].details.requestMappingConditions.methods

Varies

処理される HTTP メソッド。

*.[].details.requestMappingConditions.params

Varies

params 条件の詳細。

*.[].details.requestMappingConditions.params.[].name

Varies

パラメーターの名前。

*.[].details.requestMappingConditions.params.[].value

Varies

パラメーターの必須値(ある場合)。

*.[].details.requestMappingConditions.params.[].negated

Varies

値が否定されるかどうか。

*.[].details.requestMappingConditions.patterns

Varies

マッピングによって処理されるパスを識別するパターン。

*.[].details.requestMappingConditions.produces

Varies

生産条件の詳細。

*.[].details.requestMappingConditions.produces.[].mediaType

Varies

作成されたメディア型。

*.[].details.requestMappingConditions.produces.[].negated

Varies

メディア型が否定されるかどうか。

*.[].details.handlerMethod

Object

このマッピングへのリクエストを処理するメソッドの詳細(ある場合)。

*.[].details.handlerMethod.className

String

メソッドのクラスの完全修飾名。

*.[].details.handlerMethod.name

String

メソッドの名前。

*.[].details.handlerMethod.descriptor

String

Java 言語仕様で指定されているメソッドの記述子。

*.[].details.handlerFunction

Object

このマッピングへのリクエストを処理する関数の詳細(ある場合)。

*.[].details.handlerFunction.className

String

関数のクラスの完全修飾名。