diff --git a/docs/api.rst b/docs/api.rst --- a/docs/api.rst +++ b/docs/api.rst @@ -129,12 +129,11 @@ Visit ----- -.. http:get:: /graph/visit/:src .. http:get:: /graph/visit/nodes/:src .. http:get:: /graph/visit/paths/:src - Performs a graph traversal and returns explored nodes and/or paths (in the - order of the traversal). + Performs a graph traversal and returns explored nodes or paths (in the order + of the traversal). :param string src: starting node specified as a SWH PID @@ -149,35 +148,6 @@ .. sourcecode:: http - GET /graph/visit/ - HTTP/1.1 200 OK - Content-Type: application/json - - { - "paths": [ - [ - "swh:1:rev:f39d7d78b70e0f39facb1e4fab77ad3df5c52a35", - "swh:1:rev:52c90f2d32bfa7d6eccd66a56c44ace1f78fbadd", - ... - ], - [ - "swh:1:rev:f39d7d78b70e0f39facb1e4fab77ad3df5c52a35", - "swh:1:rev:a31e58e129f73ab5b04016330b13ed51fde7a961", - ... - ], - ... - ], - "nodes": [ - "swh:1:rev:f39d7d78b70e0f39facb1e4fab77ad3df5c52a35", - "swh:1:rev:52c90f2d32bfa7d6eccd66a56c44ace1f78fbadd", - ... - "swh:1:rev:a31e58e129f73ab5b04016330b13ed51fde7a961", - ... - ] - } - - .. sourcecode:: http - GET /graph/visit/nodes/ HTTP/1.1 200 OK Content-Type: application/json diff --git a/java/server/src/main/java/org/softwareheritage/graph/App.java b/java/server/src/main/java/org/softwareheritage/graph/App.java --- a/java/server/src/main/java/org/softwareheritage/graph/App.java +++ b/java/server/src/main/java/org/softwareheritage/graph/App.java @@ -76,16 +76,6 @@ ctx.json(endpoint.neighbors(src)); }); - // TODO: anonymous class to return both nodes/paths? (waiting on node types map merged/refactor) - /*app.get("/visit/:src", ctx -> { - SwhId src = new SwhId(ctx.pathParam("src")); - String direction = ctx.queryParam("direction", "forward"); - String edgesFmt = ctx.queryParam("edges", "*"); - - Visit visit = new Visit(graph, src, edgesFmt, direction, Visit.OutputFmt.NODES_AND_PATHS); - ctx.json(visit); - });*/ - app.get("/visit/nodes/:src", ctx -> { SwhId src = new SwhId(ctx.pathParam("src")); String direction = ctx.queryParam("direction", "forward"); diff --git a/swh/graph/client.py b/swh/graph/client.py --- a/swh/graph/client.py +++ b/swh/graph/client.py @@ -15,12 +15,6 @@ .format(self.args)) -class OutputFmt(Enum): - ONLY_NODES = 1 - ONLY_PATHS = 2 - NODES_AND_PATHS = 3 - - class RemoteGraphClient(SWHRemoteAPI): """Client to the Software Heritage Graph.""" @@ -47,15 +41,15 @@ def stats(self): return self.get('stats') - def visit(self, src, edges="*", direction="forward", - output_fmt=OutputFmt.NODES_AND_PATHS): - subendpoint = "" - if output_fmt is OutputFmt.ONLY_NODES: - subendpoint = "/nodes" - elif output_fmt is OutputFmt.ONLY_PATHS: - subendpoint = "/paths" + def visit_nodes(self, src, edges="*", direction="forward"): + return self.get('visit/nodes/{}'.format(src), + params={ + 'edges': edges, + 'direction': direction + }) - return self.get('visit{}/{}'.format(subendpoint, src), + def visit_paths(self, src, edges="*", direction="forward"): + return self.get('visit/paths/{}'.format(src), params={ 'edges': edges, 'direction': direction