1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 package org.neo4j.server.rest.web;
21
22 import javax.ws.rs.GET;
23 import javax.ws.rs.Path;
24 import javax.ws.rs.Produces;
25 import javax.ws.rs.core.Context;
26 import javax.ws.rs.core.MediaType;
27 import javax.ws.rs.core.Response;
28
29 import org.neo4j.graphdb.RelationshipType;
30 import org.neo4j.server.database.Database;
31
32 @Path("/relationship/types")
33 public class DatabaseMetadataService {
34
35 private final Database database;
36
37 public DatabaseMetadataService(@Context Database database) {
38 this.database = database;
39 }
40
41 @GET
42 @Produces(MediaType.APPLICATION_JSON)
43 public Response getRelationshipTypes() {
44 Iterable<RelationshipType> relationshipTypes = database.graph.getRelationshipTypes();
45 return Response.ok().type(MediaType.APPLICATION_JSON).entity(generateJsonRepresentation(relationshipTypes)).build();
46 }
47
48 private String generateJsonRepresentation(Iterable<RelationshipType> relationshipTypes) {
49 StringBuilder sb = new StringBuilder();
50 sb.append("[");
51 for(RelationshipType rt : relationshipTypes) {
52 sb.append("\"");
53 sb.append(rt.name());
54 sb.append("\",");
55 }
56 sb.append("]");
57 return sb.toString().replaceAll(",]", "]");
58 }
59 }
60