neography 0.0.15 → 0.0.16

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <projectDescription>
3
+ <name>neography</name>
4
+ <comment></comment>
5
+ <projects>
6
+ </projects>
7
+ <buildSpec>
8
+ </buildSpec>
9
+ <natures>
10
+ <nature>com.aptana.ruby.core.rubynature</nature>
11
+ </natures>
12
+ </projectDescription>
@@ -4,4 +4,9 @@ Maintainer:
4
4
  Contributors:
5
5
  * Peter Neubauer
6
6
  * Ian Dees
7
- * Phuong CAO
7
+ * Phuong CAO
8
+ * Carlo Alberto Degli Atti
9
+ * Stephen Becker IV
10
+ * Thomas Baum
11
+ * Maximilian Schulz
12
+ * Hesham Amiri
@@ -1,21 +1,22 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- neography (0.0.13)
4
+ neography (0.0.15)
5
5
  httparty (~> 0.7.3)
6
6
  json
7
+ os
8
+ rubyzip
7
9
 
8
10
  GEM
9
11
  remote: http://rubygems.org/
10
12
  specs:
11
13
  crack (0.1.8)
12
14
  diff-lcs (1.1.2)
13
- fakeweb (1.3.0)
14
- httparty (0.7.4)
15
+ httparty (0.7.8)
15
16
  crack (= 0.1.8)
16
- json (1.4.6)
17
- json (1.4.6-java)
17
+ json (1.6.1)
18
18
  net-http-spy (0.2.1)
19
+ os (0.9.4)
19
20
  rake (0.8.7)
20
21
  rspec (2.0.1)
21
22
  rspec-core (~> 2.0.1)
@@ -27,13 +28,13 @@ GEM
27
28
  rspec-mocks (2.0.1)
28
29
  rspec-core (~> 2.0.1)
29
30
  rspec-expectations (~> 2.0.1)
31
+ rubyzip (0.9.4)
30
32
 
31
33
  PLATFORMS
32
34
  java
33
35
  ruby
34
36
 
35
37
  DEPENDENCIES
36
- fakeweb (~> 1.3.0)
37
38
  neography!
38
39
  net-http-spy (= 0.2.1)
39
40
  rake (~> 0.8.7)
@@ -4,11 +4,20 @@ Neography is a thin Ruby wrapper to the Neo4j Rest API, for more information:
4
4
  * {Getting Started with Neo4j Server}[http://wiki.neo4j.org/content/Getting_Started_with_Neo4j_Server]
5
5
  * {Neo4j Rest API Reference}[http://components.neo4j.org/neo4j-server/milestone/rest.html]
6
6
 
7
- If you want to the full power of Neo4j, you will want to use JRuby and the excellent Neo4j.rb gem at https://github.com/andreasronge/neo4j
7
+ If you want to the full power of Neo4j, you will want to use JRuby and the excellent Neo4j.rb gem at https://github.com/andreasronge/neo4j by Andreas Ronge
8
+
9
+ A complement to Neography is the Neology Gem at https://github.com/lordkada/neology by Carlo Alberto Degli Atti
10
+
11
+ An alternative is the Architect4r Gem at https://github.com/namxam/architect4r by Maximilian Schulz
12
+
8
13
 
9
14
  === Installation
10
15
 
11
- gem install 'neography'
16
+ gem install 'neography', '0.0.14' # for version 1.4 of Neo4j
17
+
18
+ or
19
+
20
+ gem install 'neography', '0.0.15' # for version 1.5 of Neo4j
12
21
 
13
22
  After that, in your ruby script:
14
23
 
@@ -17,15 +26,6 @@ After that, in your ruby script:
17
26
 
18
27
  in order to access the functionality.
19
28
 
20
- === Try it now!
21
-
22
- I am hosting an instance of Neo4j (1.3M04) at neography.org for you to try out.
23
-
24
- You can see the administration at: {Neo4j Web Admin}[http://neography.org]
25
-
26
- # Add this to your ruby file to use it
27
- Neography::Config.server = 'neography.org'
28
-
29
29
 
30
30
  === Dependencies
31
31
 
@@ -40,7 +40,25 @@ You can see the administration at: {Neo4j Web Admin}[http://neography.org]
40
40
 
41
41
  ==== Rails
42
42
 
43
- Just add gem 'neography' to your Gemfile and run bundle install
43
+ Just add gem 'neography' to your Gemfile and run bundle install.
44
+
45
+ The following tasks will be available to you:
46
+
47
+ rake neo4j:install # Install Neo4j to the neo4j directory under your project
48
+ rake neo4j:start # Start Neo4j
49
+ rake neo4j:stop # Stop Neo4j
50
+ rake neo4j:restart # Restart Neo4j
51
+ rake neo4j:reset_yes_i_am_sure # Wipe your Neo4j Database
52
+
53
+ Windows users will need to run in a command prompt with Administrative Privileges
54
+ in order to install Neo4j as a Service.
55
+
56
+ If you are not using Rails, then add:
57
+
58
+ require 'neography/tasks'
59
+
60
+ to your Rakefile to have access to these tasks.
61
+
44
62
 
45
63
  === Documentation
46
64
 
@@ -103,6 +121,7 @@ To Use:
103
121
  @neo.remove_node_from_index(index, node1) # removes a node from the index
104
122
  @neo.get_node_index(index, key, value) # exact query of the node index with the given key/value pair
105
123
  @neo.find_node_index(index, key, value) # advanced query of the node index with the given key/value pair
124
+ @neo.find_node_index(index, query ) # advanced query of the node index with the given query
106
125
  @neo.list_relationship_indexes # gives names and query templates for relationship indices
107
126
  @neo.create_relationship_index(name, "fulltext", provider) # creates a relationship index with "fulltext" option
108
127
  @neo.add_relationship_to_index(index, key, value, rel1) # adds a relationship to the index with the given key/value pair
@@ -111,7 +130,9 @@ To Use:
111
130
  @neo.remove_relationship_from_index(index, rel1) # removes a relationship from the index
112
131
  @neo.get_relationship_index(index, key, value) # exact query of the relationship index with the given key/value pair
113
132
  @neo.find_relationship_index(index, key, value) # advanced query of the relationship index with the given key/value pair
114
-
133
+ @neo.find_relationship_index(index, query) # advanced query of the relationship index with the given query
134
+ @neo.execute_script("g.v(0)") # sends a Groovy script(through the Gremlin plugin)
135
+ @neo.execute_query("start n=node(0) return n") # sends a Cypher query (through the Cypher plugin)
115
136
 
116
137
  @neo.get_path(node1, node2, relationships, depth=4, algorithm="shortestPath") # finds the shortest path between two nodes
117
138
  @neo.get_paths(node1, node2, relationships, depth=3, algorithm="allPaths") # finds all paths between two nodes
data/Rakefile CHANGED
@@ -8,4 +8,7 @@ RSpec::Core::RakeTask.new(:spec) do |t|
8
8
  t.pattern = "spec/integration/*_spec.rb"
9
9
  end
10
10
 
11
- task :default => :spec
11
+ desc "Run Tests"
12
+ task :default => :spec
13
+
14
+
@@ -17,10 +17,13 @@ end
17
17
 
18
18
  DIRECTIONS = ["incoming", "in", "outgoing", "out", "all", "both"]
19
19
 
20
+ require 'cgi'
20
21
  require 'httparty'
21
22
  require 'json'
22
23
  require 'logger'
23
24
  require 'ostruct'
25
+ require 'os'
26
+ require 'zip/zipfilesystem'
24
27
 
25
28
  require 'neography/config'
26
29
  require 'neography/rest'
@@ -39,5 +42,7 @@ require 'neography/index'
39
42
  require 'neography/node'
40
43
  require 'neography/relationship'
41
44
 
45
+ require 'neography/railtie' if defined? Rails
46
+
42
47
  find_and_require_user_defined_code
43
48
 
@@ -0,0 +1,8 @@
1
+ require 'rails'
2
+
3
+ class Railtie < Rails::Railtie
4
+
5
+ rake_tasks do
6
+ load "neography/tasks.rb"
7
+ end
8
+ end
@@ -263,8 +263,11 @@ module Neography
263
263
  index
264
264
  end
265
265
 
266
- def find_node_index(index, key, value)
267
- index = get("/index/node/#{index}/#{key}?query=#{value}") || Array.new
266
+ def find_node_index(*args)
267
+ case args.size
268
+ when 3 then index = get("/index/node/#{args[0]}/#{args[1]}?query=#{args[2]}") || Array.new
269
+ when 2 then index = get("/index/node/#{args[0]}?query=#{args[1]}") || Array.new
270
+ end
268
271
  return nil if index.empty?
269
272
  index
270
273
  end
@@ -302,8 +305,11 @@ module Neography
302
305
  index
303
306
  end
304
307
 
305
- def find_relationship_index(index, key, value)
306
- index = get("/index/relationship/#{index}/#{key}?query=#{value}") || Array.new
308
+ def find_relationship_index(*args)
309
+ case args.size
310
+ when 3 then index = get("/index/relationship/#{args[0]}/#{args[1]}?query=#{args[2]}") || Array.new
311
+ when 2 then index = get("/index/relationship/#{args[0]}?query=#{args[1]}") || Array.new
312
+ end
307
313
  return nil if index.empty?
308
314
  index
309
315
  end
@@ -328,12 +334,22 @@ module Neography
328
334
  paths = post("/node/#{get_id(from)}/paths", options) || Array.new
329
335
  end
330
336
 
337
+ def execute_query(query)
338
+ options = { :body => {:query => query}.to_json, :headers => {'Content-Type' => 'application/json'} }
339
+ result = post("/ext/CypherPlugin/graphdb/execute_query", options)
340
+ end
341
+
342
+ def execute_script(script)
343
+ options = { :body => "script=" + CGI::escape(script), :headers => {'Content-Type' => 'application/x-www-form-urlencoded'} }
344
+ result = post("/ext/GremlinPlugin/graphdb/execute_script", options)
345
+ result == "null" ? nil : result
346
+ end
347
+
331
348
  private
332
349
 
333
350
  def evaluate_response(response)
334
351
  code = response.code
335
352
  body = response.body
336
-
337
353
  case code
338
354
  when 200
339
355
  @logger.debug "OK" if @log_enabled
@@ -0,0 +1,129 @@
1
+ # borrowed from architect4r
2
+
3
+ namespace :neo4j do
4
+ desc "Install Neo4j"
5
+ task :install do
6
+ puts 'Installing Neo4j...'
7
+
8
+ if OS::Underlying.windows?
9
+ # Download Neo4j
10
+ unless File.exist?('neo4j.zip')
11
+ df = File.open('neo4j.zip', 'wb')
12
+ begin
13
+ df << HTTParty.get("http://dist.neo4j.org/neo4j-community-1.5.M02-windows.zip")
14
+ ensure
15
+ df.close()
16
+ end
17
+ end
18
+
19
+ # Extract and move to neo4j directory
20
+ unless File.exist?('neo4j')
21
+ Zip::ZipFile.open('neo4j.zip') do |zip_file|
22
+ zip_file.each do |f|
23
+ f_path=File.join(".", f.name)
24
+ FileUtils.mkdir_p(File.dirname(f_path))
25
+ begin
26
+ zip_file.extract(f, f_path) unless File.exist?(f_path)
27
+ rescue
28
+ puts f.name + " failed to extract."
29
+ end
30
+ end
31
+ end
32
+ FileUtils.mv "neo4j-community-1.5.M02", "neo4j"
33
+ end
34
+
35
+ # Install if running with Admin Privileges
36
+ if %x[reg query "HKU\\S-1-5-19"].size > 0
37
+ %x[neo4j/bin/neo4j install]
38
+ puts "Neo4j Installed as a service."
39
+ end
40
+
41
+ else
42
+ %x[wget http://dist.neo4j.org/neo4j-community-1.5.M02-unix.tar.gz]
43
+ %x[tar -xvzf neo4j-community-1.5.M02-unix.tar.gz]
44
+ %x[mv neo4j-community-1.5.M02 neo4j]
45
+ %x[rm neo4j-community-1.5.M02-unix.tar.gz]
46
+ puts "Neo4j Installed in to neo4j directory."
47
+ end
48
+ puts "Type 'rake neo4j:start' to start it"
49
+ end
50
+
51
+ desc "Start the Neo4j Server"
52
+ task :start do
53
+ puts "Starting Neo4j..."
54
+ if OS::Underlying.windows?
55
+ if %x[reg query "HKU\\S-1-5-19"].size > 0
56
+ %x[neo4j/bin/Neo4j.bat start] #start service
57
+ else
58
+ puts "Starting Neo4j directly, not as a service."
59
+ %x[neo4j/bin/Neo4j.bat]
60
+ end
61
+ else
62
+ %x[neo4j/bin/neo4j start]
63
+ end
64
+ end
65
+
66
+ desc "Stop the Neo4j Server"
67
+ task :stop do
68
+ puts "Stopping Neo4j..."
69
+ if OS::Underlying.windows?
70
+ if %x[reg query "HKU\\S-1-5-19"].size > 0
71
+ %x[neo4j/bin/Neo4j.bat stop] #stop service
72
+ else
73
+ puts "You do not have administrative rights to stop the Neo4j Service"
74
+ end
75
+ else
76
+ %x[neo4j/bin/neo4j stop]
77
+ end
78
+ end
79
+
80
+ desc "Restart the Neo4j Server"
81
+ task :restart do
82
+ puts "Restarting Neo4j..."
83
+ if OS::Underlying.windows?
84
+ if %x[reg query "HKU\\S-1-5-19"].size > 0
85
+ %x[neo4j/bin/Neo4j.bat restart]
86
+ else
87
+ puts "You do not have administrative rights to restart the Neo4j Service"
88
+ end
89
+ else
90
+ %x[neo4j/bin/neo4j restart]
91
+ end
92
+ end
93
+
94
+ desc "Reset the Neo4j Server"
95
+ task :reset_yes_i_am_sure do
96
+ # Stop the server
97
+ if OS::Underlying.windows?
98
+ if %x[reg query "HKU\\S-1-5-19"].size > 0
99
+ %x[neo4j/bin/Neo4j.bat stop]
100
+
101
+ # Reset the database
102
+ FileUtils.rm_rf("neo4j/data/graph.db")
103
+ FileUtils.mkdir("neo4j/data/graph.db")
104
+
105
+ # Remove log files
106
+ FileUtils.rm_rf("neo4j/data/log")
107
+ FileUtils.mkdir("neo4j/data/log")
108
+
109
+ %x[neo4j/bin/Neo4j.bat start]
110
+ else
111
+ puts "You do not have administrative rights to reset the Neo4j Service"
112
+ end
113
+ else
114
+ %x[neo4j/bin/neo4j stop]
115
+
116
+ # Reset the database
117
+ FileUtils.rm_rf("neo4j/data/graph.db")
118
+ FileUtils.mkdir("neo4j/data/graph.db")
119
+
120
+ # Remove log files
121
+ FileUtils.rm_rf("neo4j/data/log")
122
+ FileUtils.mkdir("neo4j/data/log")
123
+
124
+ # Start the server
125
+ %x[neo4j/bin/neo4j start]
126
+ end
127
+ end
128
+
129
+ end
@@ -1,3 +1,3 @@
1
1
  module Neography
2
- VERSION = "0.0.15"
2
+ VERSION = "0.0.16"
3
3
  end
@@ -21,8 +21,9 @@ Gem::Specification.new do |s|
21
21
 
22
22
  s.add_development_dependency "rspec", "~> 2.0.0.beta.22"
23
23
  s.add_development_dependency "net-http-spy", "0.2.1"
24
- s.add_development_dependency "fakeweb", "~> 1.3.0"
25
24
  s.add_development_dependency "rake", "~> 0.8.7"
26
25
  s.add_dependency "httparty", "~> 0.7.3"
27
26
  s.add_dependency "json"
27
+ s.add_dependency "os"
28
+ s.add_dependency "rubyzip"
28
29
  end
@@ -214,6 +214,16 @@ describe Neography::Rest do
214
214
  @neo.remove_node_from_index("test_index", key, value, new_node)
215
215
  end
216
216
 
217
+ it "can find a node index using generic query" do
218
+ new_node = @neo.create_node
219
+ key = generate_text(6)
220
+ value = generate_text
221
+ @neo.add_node_to_index("test_index", key, value, new_node)
222
+ new_index = @neo.find_node_index("test_index", "#{key}: #{value}")
223
+ new_index.first["self"].should == new_node["self"]
224
+ @neo.remove_node_from_index("test_index", key, value, new_node)
225
+ end
226
+
217
227
  it "can get a relationship index" do
218
228
  new_node1 = @neo.create_node
219
229
  new_node2 = @neo.create_node
@@ -250,6 +260,18 @@ describe Neography::Rest do
250
260
  @neo.remove_relationship_from_index("test_index", key, value, new_relationship)
251
261
  end
252
262
 
263
+ it "can find a relationship index using generic query" do
264
+ new_node1 = @neo.create_node
265
+ new_node2 = @neo.create_node
266
+ new_relationship = @neo.create_relationship("friends", new_node1, new_node2)
267
+ key = generate_text(6)
268
+ value = generate_text
269
+ @neo.add_relationship_to_index("test_index", key, value, new_relationship)
270
+ new_index = @neo.find_relationship_index("test_index", "#{key}: #{value}")
271
+ new_index.first["self"].should == new_relationship["self"]
272
+ @neo.remove_relationship_from_index("test_index", key, value, new_relationship)
273
+ end
274
+
253
275
  it "can find use the results of a node index" do
254
276
  new_node1 = @neo.create_node
255
277
  new_node2 = @neo.create_node
@@ -0,0 +1,26 @@
1
+ require File.join(File.dirname(__FILE__), '..', 'spec_helper')
2
+
3
+ describe Neography::Rest do
4
+ before(:each) do
5
+ @neo = Neography::Rest.new
6
+ end
7
+
8
+ describe "execute gremlin script" do
9
+ it "can get the root node id" do
10
+ root_node = @neo.execute_script("g.v(0)")
11
+ root_node.should have_key("self")
12
+ root_node["self"].split('/').last.should == "0"
13
+ end
14
+ end
15
+
16
+ describe "execute cypher query" do
17
+ it "can get the root node id" do
18
+ root_node = @neo.execute_query("start n=node(0) return n")
19
+ root_node.should have_key("data")
20
+ root_node.should have_key("columns")
21
+ root_node["data"][0][0].should have_key("self")
22
+ root_node["data"][0][0]["self"].split('/').last.should == "0"
23
+ end
24
+ end
25
+
26
+ end
@@ -1,18 +1,7 @@
1
1
  require 'neography'
2
- require 'fake_web'
3
2
  require 'benchmark'
4
3
 
5
- Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each {|f| require f}
6
-
7
- FakeWeb.allow_net_connect = false
8
-
9
- # To test against a real database:
10
- # 1. Make sure empty database is running on your test neo4j server (bin/neo4j start)
11
- # 2. Uncomment the next two lines
12
- FakeWeb.clean_registry
13
- FakeWeb.allow_net_connect = true
14
-
15
- # 3. If you want to see more, uncomment the next few lines
4
+ # If you want to see more, uncomment the next few lines
16
5
  # require 'net-http-spy'
17
6
  # Net::HTTP.http_logger_options = {:body => true} # just the body
18
7
  # Net::HTTP.http_logger_options = {:verbose => true} # see everything
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: neography
3
3
  version: !ruby/object:Gem::Version
4
- hash: 1
4
+ hash: 63
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 15
10
- version: 0.0.15
9
+ - 16
10
+ version: 0.0.16
11
11
  platform: ruby
12
12
  authors:
13
13
  - Max De Marzi
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-10-17 00:00:00 Z
18
+ date: 2011-11-09 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: rspec
@@ -52,55 +52,53 @@ dependencies:
52
52
  type: :development
53
53
  version_requirements: *id002
54
54
  - !ruby/object:Gem::Dependency
55
- name: fakeweb
55
+ name: rake
56
56
  prerelease: false
57
57
  requirement: &id003 !ruby/object:Gem::Requirement
58
58
  none: false
59
59
  requirements:
60
60
  - - ~>
61
61
  - !ruby/object:Gem::Version
62
- hash: 27
62
+ hash: 49
63
63
  segments:
64
- - 1
65
- - 3
66
64
  - 0
67
- version: 1.3.0
65
+ - 8
66
+ - 7
67
+ version: 0.8.7
68
68
  type: :development
69
69
  version_requirements: *id003
70
70
  - !ruby/object:Gem::Dependency
71
- name: rake
71
+ name: httparty
72
72
  prerelease: false
73
73
  requirement: &id004 !ruby/object:Gem::Requirement
74
74
  none: false
75
75
  requirements:
76
76
  - - ~>
77
77
  - !ruby/object:Gem::Version
78
- hash: 49
78
+ hash: 5
79
79
  segments:
80
80
  - 0
81
- - 8
82
81
  - 7
83
- version: 0.8.7
84
- type: :development
82
+ - 3
83
+ version: 0.7.3
84
+ type: :runtime
85
85
  version_requirements: *id004
86
86
  - !ruby/object:Gem::Dependency
87
- name: httparty
87
+ name: json
88
88
  prerelease: false
89
89
  requirement: &id005 !ruby/object:Gem::Requirement
90
90
  none: false
91
91
  requirements:
92
- - - ~>
92
+ - - ">="
93
93
  - !ruby/object:Gem::Version
94
- hash: 5
94
+ hash: 3
95
95
  segments:
96
96
  - 0
97
- - 7
98
- - 3
99
- version: 0.7.3
97
+ version: "0"
100
98
  type: :runtime
101
99
  version_requirements: *id005
102
100
  - !ruby/object:Gem::Dependency
103
- name: json
101
+ name: os
104
102
  prerelease: false
105
103
  requirement: &id006 !ruby/object:Gem::Requirement
106
104
  none: false
@@ -113,6 +111,20 @@ dependencies:
113
111
  version: "0"
114
112
  type: :runtime
115
113
  version_requirements: *id006
114
+ - !ruby/object:Gem::Dependency
115
+ name: rubyzip
116
+ prerelease: false
117
+ requirement: &id007 !ruby/object:Gem::Requirement
118
+ none: false
119
+ requirements:
120
+ - - ">="
121
+ - !ruby/object:Gem::Version
122
+ hash: 3
123
+ segments:
124
+ - 0
125
+ version: "0"
126
+ type: :runtime
127
+ version_requirements: *id007
116
128
  description: A Ruby wrapper to the Neo4j Rest API see http://components.neo4j.org/neo4j-rest/ for more details.
117
129
  email: maxdemarzi@gmail.com
118
130
  executables: []
@@ -123,6 +135,7 @@ extra_rdoc_files: []
123
135
 
124
136
  files:
125
137
  - .gitignore
138
+ - .project
126
139
  - CONTRIBUTORS
127
140
  - Gemfile
128
141
  - Gemfile.lock
@@ -147,9 +160,11 @@ files:
147
160
  - lib/neography/path_traverser.rb
148
161
  - lib/neography/property.rb
149
162
  - lib/neography/property_container.rb
163
+ - lib/neography/railtie.rb
150
164
  - lib/neography/relationship.rb
151
165
  - lib/neography/relationship_traverser.rb
152
166
  - lib/neography/rest.rb
167
+ - lib/neography/tasks.rb
153
168
  - lib/neography/version.rb
154
169
  - neography.gemspec
155
170
  - spec/integration/authorization_spec.rb
@@ -164,10 +179,10 @@ files:
164
179
  - spec/integration/rest_index_spec.rb
165
180
  - spec/integration/rest_node_spec.rb
166
181
  - spec/integration/rest_path_spec.rb
182
+ - spec/integration/rest_plugin_spec.rb
167
183
  - spec/integration/rest_relationship_spec.rb
168
184
  - spec/integration/rest_traverse_spec.rb
169
185
  - spec/spec_helper.rb
170
- - spec/support/fake_root_spec.rb
171
186
  homepage: http://rubygems.org/gems/neography
172
187
  licenses: []
173
188
 
@@ -1,5 +0,0 @@
1
- FakeWeb.register_uri(:get, "http://localhost:7474/", :body => '{
2
- "index" : "http://localhost:7474/index",
3
- "node" : "http://localhost:7474/node",
4
- "reference_node" : "http://localhost:7474/node/0"
5
- }')