This section provides an introduction on how to use Swagger to generate an API client.

API Specifications

The index.json of each micro-service contains its respective LMC API specification. The location of each index.json is https://cloud.lancom.de/<micro-service>/api-docs/index.json.

One way of downloading all of these files is:

#!/bin/bash

BASEURL=https://cloud.lancom.de # change this if you are using a private LMC

if [ ! -d api-spec ];
then
    mkdir api-spec
fi

for i in auth backstage config control devices devicetunnel dsc \
    fields geolocation jobs logging messaging monitoring notification \
    preferences; # add missing services here
do
    wget $BASEURL/cloud-service-$i/api-docs/index.json -O api-spec/$i.json
done

Swagger Code Generator

Swagger provides a Java JAR to generate code from a given API specification (index-json).

You can download the latest release from here: https://github.com/swagger-api/swagger-codegen/releases

Java Client

The following bash script generates a java client.

#!/bin/bash

# usage:
# command <index.json> <output-dir>

java -Dapis -Dmodels -DsupportingFiles -Dmodels -jar swagger-codegen-cli.jar \
        generate -l java \
        --library resttemplate \
        --additional-properties java8=true \
        --api-package de.lcs.lmc.api \
        --model-package de.lcs.lmc.dto \
        --group-id de.lcs.lmc \
        --artifact-id de.lcs.lmc.$(basename $1 .json) \
        --artifact-version v1.0 \
        -DdateLibrary=other \
        -i $1 -o "$2/"