Skip to content

Commit aa4a8c1

Browse files
Merge pull request opentripplanner#6631 from leonardehrenfried/simplify-vector-urls
Shorter path for debug vector tiles
2 parents 0f02ee2 + e0d6d2e commit aa4a8c1

6 files changed

Lines changed: 65 additions & 32 deletions

File tree

.github/workflows/debug-client.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636

3737
- uses: actions/setup-node@v4
3838
with:
39-
node-version: 18
39+
node-version: 22
4040

4141
- name: Set version
4242
run: echo "VERSION=`date +%Y/%m/%Y-%m-%dT%H:%M`" >> $GITHUB_ENV

application/src/main/java/org/opentripplanner/apis/APIEndpoints.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
import org.opentripplanner.api.resource.UpdaterStatusResource;
2121
import org.opentripplanner.apis.gtfs.GtfsGraphQLAPI;
2222
import org.opentripplanner.apis.transmodel.TransmodelAPI;
23-
import org.opentripplanner.apis.vectortiles.GraphInspectorVectorTileResource;
23+
import org.opentripplanner.apis.vectortiles.DebugVectorTilesResource;
2424
import org.opentripplanner.ext.actuator.ActuatorAPI;
2525
import org.opentripplanner.ext.debugrastertiles.api.resource.DebugRasterTileResource;
2626
import org.opentripplanner.ext.geocoder.GeocoderResource;
@@ -41,7 +41,7 @@ private APIEndpoints() {
4141
// See the OTPFeature enum for details.
4242
addIfEnabled(APIServerInfo, ServerInfo.class);
4343
addIfEnabled(APIUpdaterStatus, UpdaterStatusResource.class);
44-
addIfEnabled(DebugUi, GraphInspectorVectorTileResource.class);
44+
addIfEnabled(DebugUi, DebugVectorTilesResource.class);
4545
addIfEnabled(GtfsGraphQlApi, GtfsGraphQLAPI.class);
4646
// scheduled to be removed and only here for backwards compatibility
4747
addIfEnabled(GtfsGraphQlApi, GtfsGraphQLAPI.GtfsGraphQLAPIOldPath.class);

application/src/main/java/org/opentripplanner/apis/vectortiles/GraphInspectorVectorTileResource.java renamed to application/src/main/java/org/opentripplanner/apis/vectortiles/DebugVectorTilesResource.java

Lines changed: 9 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@
4949
* Slippy map vector tile API for rendering various graph information for inspection/debugging
5050
* purposes.
5151
*/
52-
@Path("/routers/{ignoreRouterId}/inspector/vectortile")
53-
public class GraphInspectorVectorTileResource {
52+
@Path("/debug/vectortiles")
53+
public class DebugVectorTilesResource {
5454

5555
private static final LayerParams REGULAR_STOPS = new LayerParams("regularStops", RegularStop);
5656
private static final LayerParams AREA_STOPS = new LayerParams("areaStops", AreaStop);
@@ -71,20 +71,12 @@ public class GraphInspectorVectorTileResource {
7171
VERTICES,
7272
RENTAL
7373
);
74+
public static final String PATH = "/otp/debug/vectortiles/";
7475

7576
private final OtpServerRequestContext serverContext;
76-
private final String ignoreRouterId;
7777

78-
public GraphInspectorVectorTileResource(
79-
@Context OtpServerRequestContext serverContext,
80-
/**
81-
* @deprecated The support for multiple routers are removed from OTP2.
82-
* See https://github.com/opentripplanner/OpenTripPlanner/issues/2760
83-
*/
84-
@Deprecated @PathParam("ignoreRouterId") String ignoreRouterId
85-
) {
78+
public DebugVectorTilesResource(@Context OtpServerRequestContext serverContext) {
8679
this.serverContext = serverContext;
87-
this.ignoreRouterId = ignoreRouterId;
8880
}
8981

9082
@GET
@@ -104,7 +96,7 @@ public Response tileGet(
10496
grizzlyRequest.getLocale(),
10597
Arrays.asList(requestedLayers.split(",")),
10698
DEBUG_LAYERS,
107-
GraphInspectorVectorTileResource::createLayerBuilder,
99+
DebugVectorTilesResource::createLayerBuilder,
108100
serverContext
109101
);
110102
}
@@ -119,15 +111,9 @@ public TileJson getTileJson(
119111
) {
120112
var envelope = serverContext.worldEnvelopeService().envelope().orElseThrow();
121113
List<FeedInfo> feedInfos = feedInfos();
122-
List<String> rlayer = Arrays.asList(requestedLayers.split(","));
114+
List<String> layers = Arrays.asList(requestedLayers.split(","));
123115

124-
var url = TileJson.urlWithDefaultPath(
125-
uri,
126-
headers,
127-
rlayer,
128-
ignoreRouterId,
129-
"inspector/vectortile"
130-
);
116+
var url = TileJson.urlFromOverriddenBasePath(uri, headers, PATH, layers);
131117
return new TileJson(url, envelope, feedInfos, MIN_ZOOM, MAX_ZOOM);
132118
}
133119

@@ -160,16 +146,12 @@ public StyleSpec getTileJson(@Context UriInfo uri, @Context HttpHeaders headers)
160146
);
161147
}
162148

163-
private String tileJsonUrl(String base, List<LayerParameters<LayerType>> layers) {
149+
static String tileJsonUrl(String base, List<LayerParameters<LayerType>> layers) {
164150
final String allLayers = layers
165151
.stream()
166152
.map(LayerParameters::name)
167153
.collect(Collectors.joining(","));
168-
return "%s/otp/routers/%s/inspector/vectortile/%s/tilejson.json".formatted(
169-
base,
170-
ignoreRouterId,
171-
allLayers
172-
);
154+
return "%s%s%s/tilejson.json".formatted(base, PATH, allLayers);
173155
}
174156

175157
private List<FeedInfo> feedInfos() {
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package org.opentripplanner.apis.vectortiles;
2+
3+
import static org.junit.jupiter.api.Assertions.assertEquals;
4+
5+
import java.util.List;
6+
import org.junit.jupiter.api.Test;
7+
import org.opentripplanner.TestServerContext;
8+
import org.opentripplanner.apis.vectortiles.model.LayerType;
9+
import org.opentripplanner.ext.fares.impl.DefaultFareService;
10+
import org.opentripplanner.inspector.vector.LayerParameters;
11+
import org.opentripplanner.routing.graph.Graph;
12+
import org.opentripplanner.test.support.HttpForTest;
13+
import org.opentripplanner.transit.service.TimetableRepository;
14+
15+
class DebugVectorTilesResourceTest {
16+
17+
private record LayerParams(String name, LayerType type) implements LayerParameters<LayerType> {
18+
@Override
19+
public String mapper() {
20+
return "type";
21+
}
22+
}
23+
24+
private static final List<LayerParameters<LayerType>> LAYERS = List.of(
25+
new LayerParams("edge", LayerType.Edge),
26+
new LayerParams("areaStop", LayerType.AreaStop)
27+
);
28+
29+
@Test
30+
void tileJson() {
31+
var resource = new DebugVectorTilesResource(
32+
TestServerContext.createServerContext(
33+
new Graph(),
34+
new TimetableRepository(),
35+
new DefaultFareService()
36+
)
37+
);
38+
var req = HttpForTest.containerRequest();
39+
var tileJson = resource.getTileJson(req.getUriInfo(), req, "l1,l2");
40+
assertEquals(
41+
"https://localhost:8080/otp/debug/vectortiles/l1,l2/{z}/{x}/{y}.pbf",
42+
tileJson.tiles[0]
43+
);
44+
}
45+
46+
@Test
47+
void tileJsonUrl() {
48+
var url = DebugVectorTilesResource.tileJsonUrl("http://example.com", LAYERS);
49+
assertEquals("http://example.com/otp/debug/vectortiles/edge,areaStop/tilejson.json", url);
50+
}
51+
}

client/.env

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
VITE_API_URL=/otp/transmodel/v3
2-
VITE_DEBUG_STYLE_URL=/otp/routers/default/inspector/vectortile/style.json
2+
VITE_DEBUG_STYLE_URL=/otp/debug/vectortiles/style.json
33
VITE_GRAPHIQL_URL=/graphiql?flavor=transmodel

client/.env.development

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
VITE_API_URL=http://localhost:8080/otp/transmodel/v3
2-
VITE_DEBUG_STYLE_URL=http://localhost:8080/otp/routers/default/inspector/vectortile/style.json
2+
VITE_DEBUG_STYLE_URL=http://localhost:8080/otp/debug/vectortiles/style.json
33
VITE_GRAPHIQL_URL=http://localhost:8080/graphiql?flavor=transmodel

0 commit comments

Comments
 (0)