WildFly management - list/detect REST endpoints deployed in WildFly

ε祈祈猫儿з 提交于 2020-01-01 08:54:03

问题


Is there a way (e.g. from a WildFly management console) to list all REST endpoints deployed in WildFly? Or to list them in a log while a server is starting?


回答1:


Using the RegistryStatsResource

With RESTEasy (that is shipped with WildFly), you could add the following to your web.xml:

<context-param>
    <param-name>resteasy.resources</param-name>
    <param-value>org.jboss.resteasy.plugins.stats.RegistryStatsResource</param-value>
</context-param>

And then request the following URL:

http://[hostname]:[port]/[context]/[api-path]/resteasy/registry

Such endpoint can produce XML and JSON content. Just add the Accept header to the request with the desired media type:

  • application/xml
  • application/json

Checking the source code

If you are interested in the source code to create your own implementation, have a look at the RegistryStatsResource class on GitHub.

The most relevant part of the source code is shown below (it's RESTEasy specific):

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 may be an alternative

Depending on your requirements, you can use Swagger to document your API. It comes with a set of annotations to describe your REST endpoints.

Then use Swagger UI to provide a live documentation for your API.


Note: As of February 2017, looks like the 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 that tracks the lack of documentation for that class.




回答2:


From the Management Console, you can view the published endpoints.

When you login as an administrator, Click the Runtime option on the top navigation bar as shown below.

Click the JAX-RS option, then click the REST Resources option. This will display the endpoints to the far right.



来源:https://stackoverflow.com/questions/35462401/wildfly-management-list-detect-rest-endpoints-deployed-in-wildfly

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!