blob: e48c659008f4bfb616ef50309b02d26ac9181f0c [file]
= Custom WebAdmin routes
:navtitle: Custom WebAdmin routes
== Writing custom WebAdmin routes
An extension writer can write additional WebAdmin routes, effectively exposed over the WebAdmin API.
To do so, extend the *Routes* defined in the *james-server-webadmin-core*.
Here is the dependency:
....
<dependency>
<groupId>org.apache.james</groupId>
<artifactId>james-server-webadmin-core</artifactId>
</dependency>
....
Here is the interface:
....
public interface Routes {
String getBasePath();
void define(Service service);
}
....
* *getBasePath* enables to know the prefix of your route
* *define* enables you to register endpoint is the http://sparkjava.com/[sparkjava] Service instance. HTTP *GET*, *POST*,
*PUT*, *PATCH*, etc.. verbs are supported.
== Registration
Your custom WebAdmin routes needs to be in the *extensions-jars* folder.
You need to register its fully qualified class name in xref:webadmin.adoc[webadmin.properties]
using the *extensions.routes* property.