Code Generation

API und Client Code generieren

Im Folgenden wird Swagger Codegen 3.X (3.0.0 branch) zur Generierung des API und Client Codes verwendet. Details zur Installation und weitere Beispiele zur Verwendung sind auch auf dem offiziellen Github Repository zu finden.

In der Dokumentation zu den RIS Synergy Endpoints befindet sich jeweils ein Link zum API Specification File, welches zum Generieren des Codes benötigt wird.

Generieren von Client Code via CLI (URL)

            
                    git clone https://github.com/swagger-api/swagger-codegen
cd swagger-codegen

java -jar  modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate\
  -i https://cris-staging.aau.at/ris-synergy/funding/v3/api-docs\
  -l java \
  -t <template directory> \
  -o samples/client/ris-synergy/java
                
        
            
                    cd samples/client/ris-synergy/java
mvn package
                
        

Generieren von Client Code via CLI (lokale Datei)

Alternativ kann das Specification File lokal im json Format abgespeichert und für das Generieren des Client Codes verwendet werden.

Weitere Details und Optionen zum Generieren vom Client Code sind auch auf https://github.com/swagger-api/swagger-codegen#getting-started zu finden.

            
                    git clone https://github.com/swagger-api/swagger-codegen
cd swagger-codegen

java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
  -i ./path/to/local/file/spec.json \
  -l java \
  -t <template directory> \
  -o samples/client/ris-synergy/java
                
        

Generieren von Server-Stub Code

Das Generieren von Server-Stub Code unterscheidet sich je nach Framework. Beispiele zu den verschieden Frameworks sind auf https://github.com/swagger-api/swagger-codegen/wiki/Server-stub-generator-HOWTO gegeben. Das Specification File kann genau wie beim Generieren des Client Codes über eine URL abgefragt oder lokal hinterlegt werden.

Java Spring Boot

            
                    git clone https://github.com/swagger-api/swagger-codegen
cd swagger-codegen

java -jar modules/swagger-codegen-cli/target/swagger-codegen-cli.jar generate \
  -i https://cris-staging.aau.at/ris-synergy/funding/v3/api-docs \
  -l spring \
  -t <template directory> \
  -o samples/server/ris-synergy/springboot
                
        

Generieren von Client/Server Stub Code mit Maven

Das Generieren des Codes kann auch mithilfe des Swagger Codegen Maven Plugins verwaltet werden. Dazu werden folgende Ergänzungen in der pom.xml File benötigt:

Generieren von Client/Server Stub Code mit Maven - 2

            
                    <dependency>
    <groupId>io.swagger.codegen.v3</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>3.0.34</version>
</dependency>
                
        

Generieren von Client/Server Stub Code mit Maven - 3

            
                    <plugin>
    <groupId>io.swagger</groupId>
    <artifactId>swagger-codegen-maven-plugin</artifactId>
    <version>2.3.1</version>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
            <configuration>
                <inputSpec>path/to/file/spec.json</inputSpec>
                <templateDirectory>path/to/template directory</templateDirectory>
                <language>java</language>
                <configOptions>
                   <sourceFolder>src/gen/java/main</sourceFolder>
                </configOptions>
            </configuration>
        </execution>
    </executions>
</plugin>
                
        

Ausführliche Details und Beispiele zur Verwendung des Swagger Codegen Maven Plugins sind auf https://github.com/swagger-api/swagger-codegen/blob/master/modules/swagger-codegen-maven-plugin/README.md beschrieben.