Trace: • Workflow Engine • Flutter UI
Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
jvx:communication:rest_customservice [2022/11/17 13:23] admin |
jvx:communication:rest_customservice [2022/11/22 10:06] (current) admin |
||
---|---|---|---|
Line 1: | Line 1: | ||
~~NOTRANS~~ | ~~NOTRANS~~ | ||
~~Title: Custom REST service registration~~ | ~~Title: Custom REST service registration~~ | ||
+ | |||
JVx already has [[jvx:common:util:rest|REST services]] for action calls, data access an administration. Sometimes it's necessary to offer custom REST services for an application. Sure, you could create a simple action in your application and an action can be called with standard REST services, but this requires application authentication. If you have a different use-case for your REST service it's also possible to create your own REST service without using different libraries. | JVx already has [[jvx:common:util:rest|REST services]] for action calls, data access an administration. Sometimes it's necessary to offer custom REST services for an application. Sure, you could create a simple action in your application and an action can be called with standard REST services, but this requires application authentication. If you have a different use-case for your REST service it's also possible to create your own REST service without using different libraries. | ||
- | The easiest solution is to create a service class which is a servlet context listener. Why a listener? because we need an entry point to register our custom service. If you don't prefer a listener, it would also be possible to create a server plugin for JVx' server. But in this article, we use a servlet context listener. | + | The easiest solution is to create a service class which is a servlet context listener. Why a listener? because we need an entry point to register our custom service. If you don't prefer a listener, it would also be possible to create a [[jvx:common:setup:plugins|server plugin]] for JVx' server. But in this article, we use a servlet context listener. |
Our class looks like: | Our class looks like: | ||
Line 88: | Line 89: | ||
} | } | ||
</file> | </file> | ||
- | If you won't define the context listener as @WebListener, simply add: | + | If you won't define the context listener as ''@WebListener'', simply add: |
<file xml> | <file xml> | ||
Line 97: | Line 98: | ||
to your deployment descriptor (web.xml). | to your deployment descriptor (web.xml). | ||
- | To use your services, simply send GET or POST requests, e.g. | + | To use your services, simply send ''GET'' or ''POST'' requests, e.g. |
<file java> | <file java> | ||
Line 134: | Line 135: | ||
} | } | ||
</file> | </file> | ||
+ | |||
+ | The user-zone is per default ''_zone'' (e.g. **http://localhost/AppContext/services/rest/_user/healthCheck**). If you want another zone name, simply add a parameter to the servlet mapping in deployment descriptor (web.xml): | ||
+ | |||
+ | <file xml> | ||
+ | <servlet> | ||
+ | <servlet-name>RestletServlet</servlet-name> | ||
+ | <servlet-class>com.sibvisions.rad.server.http.rest.RESTServlet</servlet-class> | ||
+ | |||
+ | <init-param> | ||
+ | <param-name>zone.user</param-name> | ||
+ | <param-value>uzone</param-value> | ||
+ | </init-param> | ||
+ | </servlet> | ||
+ | </file> | ||
+ | |||
+ | The zone name is now ''uzone'' (e.g. **http://localhost/AppContext/services/rest/uzone/healthCheck**). | ||
+ | |||
+ | The complete source code is available [[https://sourceforge.net/p/jvx/code/HEAD/tree/trunk/java/server/tomcat/|here]]. | ||
+ | |||
+ | In this document, we registered User services. It's also possible to register custom services as [[jvx:common:util:rest#administration|Admin services]]. The difference is that it's possible to [[jvx:server:security:rest_services_disable|en/disable admin services]] by name. |