マッピング (mappings
)
mappings
エンドポイントは、アプリケーションのリクエストマッピングに関する情報を提供します。
マッピングの取得
マッピングを取得するには、次の curl ベースの例に示すように、GET
リクエストを /actuator/mappings
に作成します。
$ curl 'http://localhost:37279/actuator/mappings' -i -X GET \
-H 'accept-encoding: gzip' \
-H 'user-agent: ReactorNetty/1.2.1' \
-H 'accept: */*'
結果のレスポンスは次のようになります。
HTTP/1.1 200 OK
Content-Type: application/vnd.spring-boot.actuator.v3+json
Transfer-Encoding: chunked
Date: Thu, 19 Dec 2024 11:43:36 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 アプリケーションの型(リアクティブまたはサーブレットベース)によって異なります。次の表に、レスポンスの一般的な要素の構造を示します。
パス | タイプ | 説明 |
---|---|---|
|
| ID をキーとするアプリケーションコンテキスト。 |
|
| マッピング型によってキー設定されたコンテキスト内のマッピング。 |
|
| ディスパッチャーサーブレットマッピング(ある場合)。 |
|
| サーブレットフィルターマッピング(ある場合)。 |
|
| サーブレットマッピング(ある場合)。 |
|
| ディスパッチャーハンドラーマッピング(ある場合)。 |
|
| 親アプリケーションコンテキストの ID(存在する場合)。 |
contexts.*.mappings
で見つかる可能性のあるエントリについては、次のセクションで説明します。
ディスパッチャーサーブレットのレスポンス構造
Spring MVC を使用する場合、レスポンスには contexts.*.mappings.dispatcherServlets
にあるすべての DispatcherServlet
リクエストマッピングの詳細が含まれます。次の表は、レスポンスのこのセクションの構造を示しています。
パス | タイプ | 説明 |
---|---|---|
|
| ディスパッチャーサーブレットマッピング(ある場合)は、ディスパッチャーサーブレット Bean 名によってキー設定されます。 |
|
| マッピングに関する追加の実装固有の詳細。オプション。 |
|
| マッピングのハンドラー。 |
|
| マッピングの述語。 |
|
| このマッピングへのリクエストを処理するメソッドの詳細(ある場合)。 |
|
| メソッドのクラスの完全修飾名。 |
|
| メソッドの名前。 |
|
| Java 言語仕様で指定されているメソッドの記述子。 |
|
| リクエストマッピング条件の詳細。 |
|
| 消費状態の詳細 |
|
| 消費されたメディア型。 |
|
| メディア型が否定されるかどうか。 |
|
| ヘッダー条件の詳細。 |
|
| ヘッダーの名前。 |
|
| ヘッダーの必須値(ある場合)。 |
|
| 値が否定されるかどうか。 |
|
| 処理される HTTP メソッド。 |
|
| params 条件の詳細。 |
|
| パラメーターの名前。 |
|
| パラメーターの必須値(ある場合)。 |
|
| 値が否定されるかどうか。 |
|
| マッピングによって処理されるパスを識別するパターン。 |
|
| 生産条件の詳細。 |
|
| 作成されたメディア型。 |
|
| メディア型が否定されるかどうか。 |
サーブレットのレスポンス構造
サーブレットスタックを使用する場合、レスポンスには contexts.*.mappings.servlets
の Servlet
マッピングの詳細が含まれます。次の表に、レスポンスのこのセクションの構造を示します。
パス | タイプ | 説明 |
---|---|---|
|
| サーブレットのマッピング。 |
|
| サーブレットの名前。 |
|
| サーブレットのクラス名 |
サーブレットフィルターのレスポンス構造
サーブレットスタックを使用する場合、レスポンスには contexts.*.mappings.servletFilters
の Filter
マッピングの詳細が含まれます。次の表に、レスポンスのこのセクションの構造を示します。
パス | タイプ | 説明 |
---|---|---|
|
| フィルターがマップされるサーブレットの名前。 |
|
| フィルターがマップされる URL パターン。 |
|
| フィルターの名前。 |
|
| フィルターのクラス名 |
ディスパッチャーハンドラーのレスポンス構造
Spring WebFlux を使用する場合、レスポンスには contexts.*.mappings.dispatcherHandlers
の DispatcherHandler
リクエストマッピングの詳細が含まれます。次の表に、レスポンスのこのセクションの構造を示します。
パス | タイプ | 説明 |
---|---|---|
|
| ディスパッチャーハンドラー Bean 名をキーとするディスパッチャーハンドラーマッピング(ある場合)。 |
|
| マッピングに関する追加の実装固有の詳細。オプション。 |
|
| マッピングのハンドラー。 |
|
| マッピングの述語。 |
|
| リクエストマッピング条件の詳細。 |
|
| 消費状態の詳細 |
|
| 消費されたメディア型。 |
|
| メディア型が否定されるかどうか。 |
|
| ヘッダー条件の詳細。 |
|
| ヘッダーの名前。 |
|
| ヘッダーの必須値(ある場合)。 |
|
| 値が否定されるかどうか。 |
|
| 処理される HTTP メソッド。 |
|
| params 条件の詳細。 |
|
| パラメーターの名前。 |
|
| パラメーターの必須値(ある場合)。 |
|
| 値が否定されるかどうか。 |
|
| マッピングによって処理されるパスを識別するパターン。 |
|
| 生産条件の詳細。 |
|
| 作成されたメディア型。 |
|
| メディア型が否定されるかどうか。 |
|
| このマッピングへのリクエストを処理するメソッドの詳細(ある場合)。 |
|
| メソッドのクラスの完全修飾名。 |
|
| メソッドの名前。 |
|
| Java 言語仕様で指定されているメソッドの記述子。 |
|
| このマッピングへのリクエストを処理する関数の詳細(ある場合)。 |
|
| 関数のクラスの完全修飾名。 |