From 0fddefab0d48d35b28c312ca1538a9738426301a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20Pro=C3=9F?= Date: Thu, 1 Oct 2020 10:33:33 +0200 Subject: [PATCH] Additional settings for the REST API --- .../org/n52/javaps/rest/ApiController.java | 18 ++++++++++- .../n52/javaps/rest/LandingPageApiImpl.java | 31 +++++++++++++------ .../rest/settings/RestSettingsConstants.java | 3 ++ .../main/resources/settings/settings-rest.xml | 27 ++++++++++++++++ .../webapp/WEB-INF/config/configuration.json | 12 +++++++ 5 files changed, 80 insertions(+), 11 deletions(-) diff --git a/rest/src/main/java/org/n52/javaps/rest/ApiController.java b/rest/src/main/java/org/n52/javaps/rest/ApiController.java index 26afb233..b2ee99e3 100644 --- a/rest/src/main/java/org/n52/javaps/rest/ApiController.java +++ b/rest/src/main/java/org/n52/javaps/rest/ApiController.java @@ -16,12 +16,28 @@ */ package org.n52.javaps.rest; +import java.net.URI; + +import org.n52.faroe.Validation; +import org.n52.faroe.annotation.Configurable; +import org.n52.faroe.annotation.Setting; +import org.n52.javaps.rest.settings.RestSettingsConstants; import org.springframework.stereotype.Controller; @Controller +@Configurable public class ApiController implements Api { + + private URI apiURI; + + @Setting(RestSettingsConstants.API_URI) + public void setDescription(URI apiURI) { + Validation.notNull("apiURI", apiURI); + this.apiURI = apiURI; + } + @Override public String api() { - return "redirect:https://app.swaggerhub.com/apis/geoprocessing/WPS/1.0-draft"; + return "redirect:" + apiURI; } } diff --git a/rest/src/main/java/org/n52/javaps/rest/LandingPageApiImpl.java b/rest/src/main/java/org/n52/javaps/rest/LandingPageApiImpl.java index 6b59f34d..82a79f02 100644 --- a/rest/src/main/java/org/n52/javaps/rest/LandingPageApiImpl.java +++ b/rest/src/main/java/org/n52/javaps/rest/LandingPageApiImpl.java @@ -16,26 +16,29 @@ */ package org.n52.javaps.rest; +import java.net.URI; +import java.util.ArrayList; +import java.util.List; + import org.n52.faroe.Validation; import org.n52.faroe.annotation.Configurable; import org.n52.faroe.annotation.Setting; import org.n52.iceland.service.ServiceSettings; -import org.n52.javaps.rest.model.Link; import org.n52.javaps.rest.model.LandingPage; +import org.n52.javaps.rest.model.Link; +import org.n52.javaps.rest.settings.RestSettingsConstants; import org.springframework.stereotype.Controller; -import java.net.URI; -import java.util.ArrayList; -import java.util.List; - /** - * Home redirection to swagger api documentation + * Landing page */ @Controller @Configurable public class LandingPageApiImpl implements LandingPageApi { private String serviceURL; + private String title; + private String description; @Setting(ServiceSettings.SERVICE_URL) public void setServiceURL(URI serviceURL) { @@ -47,12 +50,20 @@ public void setServiceURL(URI serviceURL) { this.serviceURL = url.replace("/service", BASE_URL); } - @Override - public LandingPage landingPage() { + @Setting(RestSettingsConstants.TITLE) + public void setTitle(String title) { + Validation.notNull("title", title); + this.title = title; + } - String title = "52°North draft OGC API - Processes"; + @Setting(RestSettingsConstants.DESCRIPTION) + public void setDescription(String description) { + Validation.notNull("description", description); + this.description = description; + } - String description = "52°North draft OGC API - Processes, powered by javaPS"; + @Override + public LandingPage landingPage() { List links = new ArrayList<>(); diff --git a/rest/src/main/java/org/n52/javaps/rest/settings/RestSettingsConstants.java b/rest/src/main/java/org/n52/javaps/rest/settings/RestSettingsConstants.java index bce32480..b4b97433 100644 --- a/rest/src/main/java/org/n52/javaps/rest/settings/RestSettingsConstants.java +++ b/rest/src/main/java/org/n52/javaps/rest/settings/RestSettingsConstants.java @@ -19,5 +19,8 @@ public class RestSettingsConstants { public static final String ENABLE_JOB_LIST_EXTENSION = "rest.enable.joblist.extension"; + public static final String TITLE = "rest.title"; + public static final String DESCRIPTION = "rest.description"; + public static final String API_URI = "rest.api.uri"; } diff --git a/webapp/src/main/resources/settings/settings-rest.xml b/webapp/src/main/resources/settings/settings-rest.xml index 887a6cf1..2138505d 100644 --- a/webapp/src/main/resources/settings/settings-rest.xml +++ b/webapp/src/main/resources/settings/settings-rest.xml @@ -35,4 +35,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/webapp/src/main/webapp/WEB-INF/config/configuration.json b/webapp/src/main/webapp/WEB-INF/config/configuration.json index 0dc92456..0ac843bf 100644 --- a/webapp/src/main/webapp/WEB-INF/config/configuration.json +++ b/webapp/src/main/webapp/WEB-INF/config/configuration.json @@ -161,6 +161,18 @@ "rest.enable.joblist.extension" : { "type" : "boolean", "value" : false + }, + "rest.title" : { + "type" : "string", + "value" : "52\u00B0North draft OGC API - Processes" + }, + "rest.description" : { + "type" : "string", + "value" : "52\u00B0North draft OGC API - Processes, powered by javaPS" + }, + "rest.api.uri" : { + "type" : "uri", + "value" : "https://app.swaggerhub.com/apiproxy/schema/file/apis/geoprocessing/WPS/1.0-draft.4?format=json" } } } \ No newline at end of file