| = 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. |