/
Generera klientkod för SOAP och REST

Generera klientkod för SOAP och REST

Exempel på plugin för att generera klient-kod för SOAP- respektive REST-klienter.

SOAP

<plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>jaxb2-maven-plugin</artifactId> <version>2.5.0</version> <!-- Enables fluent builder for generated classes --> <dependencies> <dependency> <groupId>org.jvnet.jaxb2_commons</groupId> <artifactId>jaxb2-fluent-api</artifactId> <version>3.0</version> </dependency> </dependencies> <executions> <execution> <id>xjc</id> <goals> <goal>xjc</goal> </goals> </execution> </executions> <configuration> <xjbSources> <!-- Kan behövas om dom genererade klasserna inte annoteras upp med @XmlRootElement(name = "ClassName") --> <xjbSource>${basedir}/src/main/resources/contracts/xjb/example.xjb</xjbSource> </xjbSources> <!-- Enable fluent --> <arguments> <argument>-Xfluent-api</argument> </arguments> <outputDirectory>${project.build.directory}/your-sources</outputDirectory> <sourceType>wsdl</sourceType> <sources> <source>${basedir}/src/main/resources/contracts/Example.wsdl</source> </sources> </configuration> </plugin>

 

example.xjb

<jaxb:bindings xmlns:jaxb="http://java.sun.com/xml/ns/jaxb" jaxb:version="2.0" xmlns:xjc= "http://java.sun.com/xml/ns/jaxb/xjc" jaxb:extensionBindingPrefixes="xjc"> <jaxb:globalBindings> <xjc:simple/> </jaxb:globalBindings> </jaxb:bindings>

REST

<plugin> <groupId>org.openapitools</groupId> <artifactId>openapi-generator-maven-plugin</artifactId> <version>5.4.0</version> <executions> <execution> <id>some-id</id> <goals> <goal>generate</goal> </goals> <configuration> <inputSpec>${project.basedir}/src/main/resources/contracts/swagger.json</inputSpec> <output>${project.build.directory}/your-sources</output> <generatorName>spring</generatorName> <generateApis>false</generateApis> <configOptions> <apiPackage>somePackage</apiPackage> <dateLibrary>java8</dateLibrary> <generateSupportingFiles>false</generateSupportingFiles> <library>microprofile</library> </configOptions> </configuration> </execution> </executions> </plugin>

Notera att med generatorName satt till spring så genereras klientkod som använder annoteringar för OpenAPI v3.x. För att generera klientkod som använder annoteringar för v2.x bör java användas.

Problem att IDE:t inte hittar genererad kod

I vissa fall hittar inte IDE:n genererad kod och det kan då behövas konfigureras upp så att katalogen märks upp som en “source-folder”

 

Related content

Genererade klienter
Genererade klienter
Read with this
API-dokumentation både internt och externt - hur gör man?
API-dokumentation både internt och externt - hur gör man?
Read with this
Spring Boot Admin
Spring Boot Admin
Read with this
Utveckling
Read with this