如果我在服务器模式下运行neo4j以便可以使用REST API访问它,我可以使用EmbeddedGraphDatabase-class访问相同的neo4j实例吗?
我正在考虑一个生产设置,其中使用EmbeddedGraphDatabase的Java应用程序正在驱动逻辑,但其他客户端可能使用REST以只读模式导航数据.
您所描述的是服务器插件或扩展.这样您就可以通过REST API公开您的数据库,但同时您可以从自定义插件/扩展代码中访问嵌入式图形数据库高性能.
在您的自定义代码中,您可以获得注入的GraphDatabaseService.
您使用neo4j-server将自定义扩展部署为jar,并使客户端代码通过面向域的restful API进行操作.
// extension sample @Path( "/helloworld" ) public class HelloWorldResource { private final GraphDatabaseService database; public HelloWorldResource( @Context GraphDatabaseService database) { this.database = database; } @GET @Produces( MediaType.TEXT_PLAIN ) @Path( "/{nodeId}" ) public Response hello( @PathParam( "nodeId" ) long nodeId ) { // Do stuff with the database return Response.status( Status.OK ).entity( ( "Hello World, nodeId=" + nodeId).getBytes() ).build(); } }
用于编写插件和扩展的文档.