REST-API  -  RestEasy per POM in Maven-WebApp einbinden

Hier erfährst Du, welche Dependencies in der POM einer Maven-WebApp benötigt werden, um eine REST-API zu realisieren.

INFO:
resteasy-jackson2-provider 3.15.3 zieht jackson.*-Abhängigkeiten in der Version 2.11.3 (Stichwort: jackson*)

<properties>
    <resteasy.version>3.15.3.Final</resteasy.version>
    <jackson-core-version>2.11.3</jackson-core-version>
</properties>
<!-- REST-API -->

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-servlet-initializer</artifactId>
    <version>${resteasy.version}</version>
</dependency>

<dependency>
    <!-- Nur im Tomcat notwendig, im JBoss = scope provided -->
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-cdi</artifactId>
    <version>${resteasy.version}</version>
</dependency>

<dependency>
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-jackson2-provider</artifactId>
    <version>${resteasy.version}</version>
</dependency>

<dependency>
    <!-- Nur nötig, wenn wir auch einen Client schreiben wollen der z. B. Http-Abfragen absetzt -->
    <groupId>org.jboss.resteasy</groupId>
    <artifactId>resteasy-client</artifactId>
    <version>${resteasy.version}</version>
</dependency>

<!-- wird vollständig durch resteasy-jackson2-provider zur Verfügung gestellt
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>${jackson-core-version}</version>
</dependency>
-->

<dependency>
    <groupId>com.fasterxml.jackson.datatype</groupId>
    <artifactId>jackson-datatype-jsr310</artifactId>
    <version>${jackson-core-version}</version>
</dependency>

REST-API im Backend "hochziehen" und Application-Path festlegen

Damit REST im Backend überhaupt funktioniert und die API-Schnittstelle über einen bestimmten Pfad aufgerufen werden kann, benötigen wir folgende Datei:

Klassenname: DefaultJaxRsApplication.java
package de.COMPANY.APPNAME.rest;

import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;

/**
* Leere Klasse, die JAX-RS hochzieht und den Basispfad definiert.
*/
@ApplicationPath("api/v1")
public class DefaultJaxRsApplication extends Application {
    // Nothing to do
}