3
  1. 有没有一种方法可以在 neo4j 中获得不那么冗长的 rest api 响应,也许只有节点数据?在每个请求上发送所有额外的数据似乎有点浪费带宽。

  2. 为什么所有的元数据都包含在响应中?例如,基本 api url 在整个过程中都是重复的,一旦你有了节点 ID,就可以可靠地预测所有属性的 url,比如 self、properties、relationship 等……它们看起来不像是非常不稳定的 url。


{
      "extensions" : {
      },
      "paged_traverse" : "http://localhost:7474/db/data/node/183/paged/traverse/{returnType}{?pageSize,leaseTime}",
      "outgoing_relationships" : "http://localhost:7474/db/data/node/183/relationships/out",
      "traverse" : "http://localhost:7474/db/data/node/183/traverse/{returnType}",
      "all_typed_relationships" : "http://localhost:7474/db/data/node/183/relationships/all/{-list|&|types}",
      "all_relationships" : "http://localhost:7474/db/data/node/183/relationships/all",
      "property" : "http://localhost:7474/db/data/node/183/properties/{key}",
      "self" : "http://localhost:7474/db/data/node/183",
      "outgoing_typed_relationships" : "http://localhost:7474/db/data/node/183/relationships/out/{-list|&|types}",
      "properties" : "http://localhost:7474/db/data/node/183/properties",
      "incoming_relationships" : "http://localhost:7474/db/data/node/183/relationships/in",
      "incoming_typed_relationships" : "http://localhost:7474/db/data/node/183/relationships/in/{-list|&|types}",
      "create_relationship" : "http://localhost:7474/db/data/node/183/relationships",
      "data" : {
      }
    }
4

4 回答 4

4

发送的信息是 HTTP API 中内置的 REST 发现机制的一部分。更改此设置会破坏许多现有的客户端软件,因为这些值被用作“有根据的猜测”的替代品。

现有服务器无法不生成此数据,但如果它只是您所追求的节点属性,则http://localhost:7474/db/data/node/183/propertiesURI 只会为您提供一组简单的键值对。

确实,URI 本身似乎并不是特别不稳定。但是,如果这些 URI 在未来的服务器版本中发生变化,那么遵循发现机制的客户端软件将受到保护,不会受到这种变化的影响。

于 2012-12-31T09:29:35.873 回答
3

您总是可以编写自己的服务器插件,以您想要的格式提供数据。

于 2012-12-30T23:44:08.913 回答
3

如果您使用 Cypher,您可以通过不返回完整节点/rels 而是返回您需要的值来减少详细程度,请参阅http://docs.neo4j.org/chunked/snapshot/rest-api-cypher .html

于 2012-12-31T11:10:51.283 回答
0

当我在寻找同样的东西时,我遇到了这个悬而未决的问题,所以我知道我可以通过插入我的解决方案来帮助别人。试图解释 Node-Neo4j API

于 2014-06-18T01:18:21.410 回答