WildFly 管理 - list/detect REST 端点部署在 WildFly 中
WildFly management - list/detect REST endpoints deployed in WildFly
有没有办法(例如从 WildFly 管理控制台)列出部署在 WildFly 中的所有 REST 端点?或者在服务器启动时将它们列在日志中?
使用 RegistryStatsResource
使用 RESTEasy(随 WildFly 一起提供),您可以将以下内容添加到您的 web.xml
:
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>org.jboss.resteasy.plugins.stats.RegistryStatsResource</param-value>
</context-param>
然后请求以下URL:
http://[hostname]:[port]/[context]/[api-path]/resteasy/registry
此类端点可以生成 XML 和 JSON 内容。只需将 Accept
header 添加到具有所需媒体类型的请求中:
application/xml
application/json
检查源代码
如果您对创建自己的实现的源代码感兴趣,请查看 RegistryStatsResource
class on GitHub。
源代码中最相关的部分如下所示(特定于 RESTEasy):
ResourceMethodRegistry registry = (ResourceMethodRegistry)
ResteasyProviderFactory.getContextData(Registry.class);
for (String key : registry.getBounded().keySet()){
List<ResourceInvoker> invokers = registry.getBounded().get(key);
for (ResourceInvoker invoker : invokers) {
if (invoker instanceof ResourceMethodInvoker) {
ResourceMethodInvoker rm = (ResourceMethodInvoker) invoker;
// Extract metadata from the ResourceMethodInvoker
}
}
Swagger 可能是另一种选择
根据您的要求,您可以使用 Swagger to document your API. It comes with a set of annotations 来描述您的 REST 端点。
然后使用 Swagger UI 为您的 API 提供实时文档。
注意: 截至 2017 年 2 月,看起来像 RegistryStatsResource
class is completely undocumented. I occasionally discovered it when digging into the RESTEasy source code for debugging purposes. Also, I found this JBoss EAP issue 跟踪缺少 class 的文档。
从管理控制台,您可以查看已发布的端点。
当您以管理员身份登录后,点击顶部导航栏中的运行时选项,如下所示。
单击 JAX-RS 选项,然后单击 REST 资源选项。这将在最右侧显示端点。
有没有办法(例如从 WildFly 管理控制台)列出部署在 WildFly 中的所有 REST 端点?或者在服务器启动时将它们列在日志中?
使用 RegistryStatsResource
使用 RESTEasy(随 WildFly 一起提供),您可以将以下内容添加到您的 web.xml
:
<context-param>
<param-name>resteasy.resources</param-name>
<param-value>org.jboss.resteasy.plugins.stats.RegistryStatsResource</param-value>
</context-param>
然后请求以下URL:
http://[hostname]:[port]/[context]/[api-path]/resteasy/registry
此类端点可以生成 XML 和 JSON 内容。只需将 Accept
header 添加到具有所需媒体类型的请求中:
application/xml
application/json
检查源代码
如果您对创建自己的实现的源代码感兴趣,请查看 RegistryStatsResource
class on GitHub。
源代码中最相关的部分如下所示(特定于 RESTEasy):
ResourceMethodRegistry registry = (ResourceMethodRegistry)
ResteasyProviderFactory.getContextData(Registry.class);
for (String key : registry.getBounded().keySet()){
List<ResourceInvoker> invokers = registry.getBounded().get(key);
for (ResourceInvoker invoker : invokers) {
if (invoker instanceof ResourceMethodInvoker) {
ResourceMethodInvoker rm = (ResourceMethodInvoker) invoker;
// Extract metadata from the ResourceMethodInvoker
}
}
Swagger 可能是另一种选择
根据您的要求,您可以使用 Swagger to document your API. It comes with a set of annotations 来描述您的 REST 端点。
然后使用 Swagger UI 为您的 API 提供实时文档。
注意: 截至 2017 年 2 月,看起来像 RegistryStatsResource
class is completely undocumented. I occasionally discovered it when digging into the RESTEasy source code for debugging purposes. Also, I found this JBoss EAP issue 跟踪缺少 class 的文档。
从管理控制台,您可以查看已发布的端点。
当您以管理员身份登录后,点击顶部导航栏中的运行时选项,如下所示。
单击 JAX-RS 选项,然后单击 REST 资源选项。这将在最右侧显示端点。