Ich möchte REST einfach erstellen.
Da es die erstellte API schnell übergeben und in der Umgebung der anderen Partei ausführen sollte, habe ich es zu WildFly Swarm gemacht, das funktioniert, wenn Java enthalten ist.
WildFly-Swarm :2017.4.0 Entwicklungsumgebung: Eclipse Version Neon.3 Release (4.6.3) Java : version "1.8.0_131"
Es wird basierend auf dem Beispielcode in der Referenz-URL erstellt. Ich habe JAX-RS verwendet, weil es am einfachsten zu sein schien.
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>GID</groupId>
<artifactId>AID</artifactId>
<name>NAME</name>
<version>1.0.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<version.wildfly.swarm>2017.4.0</version.wildfly.swarm>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<failOnMissingWebXml>false</failOnMissingWebXml>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>bom-all</artifactId>
<version>${version.wildfly.swarm}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<finalName>FNAME</finalName>
<plugins>
<plugin>
<groupId>org.wildfly.swarm</groupId>
<artifactId>wildfly-swarm-plugin</artifactId>
<version>${version.wildfly.swarm}</version>
<executions>
<execution>
<goals>
<goal>package</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<dependencies>
<!-- Java EE 7 dependency -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
<!-- WildFly Swarm Fractions -->
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>swagger</artifactId>
</dependency>
<dependency>
<groupId>org.wildfly.swarm</groupId>
<artifactId>jaxrs</artifactId>
</dependency>
</dependencies>
</project>
Entscheiden Sie einfach den Stammpfad Ihrer Anwendung.
MyApplication.java
import javax.ws.rs.ApplicationPath;
import javax.ws.rs.core.Application;
@ApplicationPath("/myapp")
public class MyApplication extends Application{
public MyApplication() {
}
}
Beschreiben der Implementierung mit JAX-RX und des Dokuments zum Veröffentlichen der API mit Swagger mit Anmerkungen.
MyApi.java
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@Path("/apipath")
@Api(value = "/", tags = "tag")
public class MyApi {
@GET
@Produces("text/plain")
@ApiOperation(value = "Sample",
notes = "This is sample.",
response = String.class
)
public String get() {
return "This is test.";
}
}
mvn package
Wenn Jar erstellt und JAR ausgeführt wird, befindet sich die API in einem funktionierenden Zustand. Starten Sie den Browser, greifen Sie auf http: // localhost: 8080 / myapp / apipath zu, und wenn "Dies ist ein Test" ausgegeben wird, ist dies in Ordnung.
Öffnen Sie http: // localhost: 8080 / myapp / swagger, um die API-Beschreibung anzuzeigen.
JAX-RS .war With Swagger Enabled Example
Das fertige Glas ist ungefähr 50M. Ich finde es sehr praktisch, in kürzester Zeit eine REST-API erstellen zu können. Dieses Mal führe ich den Beispielcode so aus, wie er ist, also möchte ich ihn verwenden, nachdem ich in mir selbst hungrig geworden bin.