From 93073a0f723a9909ffa58e02f3b35d0d83012d5f Mon Sep 17 00:00:00 2001 From: takb Date: Wed, 29 Jan 2025 12:06:09 +0100 Subject: [PATCH] docs: fix swagger output --- .../routing/RouteRequestCustomModel.java | 8 +++++++- .../routing/RouteRequestCustomModelAreas.java | 11 +++++++++++ .../RouteRequestCustomModelGeoJSONFeature.java | 18 ++++++++++++++++++ ...questCustomModelGeoJSONPolygonGeometry.java | 17 +++++++++++++++++ 4 files changed, 53 insertions(+), 1 deletion(-) create mode 100644 ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModelAreas.java create mode 100644 ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModelGeoJSONFeature.java create mode 100644 ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModelGeoJSONPolygonGeometry.java diff --git a/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModel.java b/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModel.java index e2acf39725..1ae7e8e592 100644 --- a/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModel.java +++ b/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModel.java @@ -6,6 +6,7 @@ import com.graphhopper.json.Statement; import com.graphhopper.util.CustomModel; import com.graphhopper.util.JsonFeature; +import io.swagger.v3.oas.annotations.media.Schema; import java.util.ArrayList; import java.util.HashMap; @@ -14,21 +15,26 @@ public class RouteRequestCustomModel { @JsonProperty("distance_influence") + @Schema(description = "Parameter determining the influence of the distance between two points on the edge weight") private double distanceInfluence; @JsonProperty("heading_penalty") + @Schema(hidden = true) private double headingPenalty = (double) 300.0F; @JsonProperty("speed") @JsonDeserialize(contentUsing = StatementDeserializer.class) + @Schema(description = "Array of objects describing rules to be applied to the speed of edges") private List speedStatements = new ArrayList<>(); @JsonProperty("priority") @JsonDeserialize(contentUsing = StatementDeserializer.class) + @Schema(description = "Array of objects describing rules to be applied to the priority of edges") private List priorityStatements = new ArrayList<>(); @JsonProperty("areas") - private Map areas = new HashMap(); + @Schema(implementation = RouteRequestCustomModelAreas.class, description = "Map of areas that can be referenced in speed and priority rules") + private Map areas = new HashMap<>(); public CustomModel toGHCustomModel() { CustomModel customModel = new CustomModel(); diff --git a/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModelAreas.java b/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModelAreas.java new file mode 100644 index 0000000000..0933370565 --- /dev/null +++ b/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModelAreas.java @@ -0,0 +1,11 @@ +package org.heigit.ors.api.requests.routing; + +import io.swagger.v3.oas.annotations.media.Schema; + +import java.util.Map; + +@Schema(type = "object", implementation = RouteRequestCustomModelGeoJSONFeature.class) +public interface RouteRequestCustomModelAreas extends Map { + @Schema(hidden = true) + boolean isEmpty(); +} diff --git a/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModelGeoJSONFeature.java b/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModelGeoJSONFeature.java new file mode 100644 index 0000000000..5ae3824809 --- /dev/null +++ b/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModelGeoJSONFeature.java @@ -0,0 +1,18 @@ +package org.heigit.ors.api.requests.routing; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class RouteRequestCustomModelGeoJSONFeature { + @JsonProperty("type") + @Schema(description = "GeoJSON type", defaultValue = "Feature") + public final String type = "Feature"; + + @JsonProperty("geometry") + @Schema(description = "Feature geometry") + public RouteRequestCustomModelGeoJSONPolygonGeometry geometry; +} diff --git a/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModelGeoJSONPolygonGeometry.java b/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModelGeoJSONPolygonGeometry.java new file mode 100644 index 0000000000..171f9d469a --- /dev/null +++ b/ors-api/src/main/java/org/heigit/ors/api/requests/routing/RouteRequestCustomModelGeoJSONPolygonGeometry.java @@ -0,0 +1,17 @@ +package org.heigit.ors.api.requests.routing; + +import com.fasterxml.jackson.annotation.JsonProperty; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +public class RouteRequestCustomModelGeoJSONPolygonGeometry { + @JsonProperty("type") + @Schema(description = "GeoJSON type", defaultValue = "Polygon") + public final String type = "Polygon"; + + @JsonProperty("coordinates") + public Double[][][] coordinates; +}