如何添加资源并指定相关元素?

时间:2016-02-15 14:55:25

标签: rest spring-data-neo4j spring-data-rest spring-data-neo4j-4

我有一个游戏提示网站的简单API:

  • /class是游戏类的端点
  • /tip是提示的终点
  • /user是用户的端点

每个提示都有3个关系:

  • (:User)-[:AUTHORED]-(:Tip)
  • (:Class)<-[:FOR]-(:Tip)
  • (:Class)<-[:AGAINST]-(:Tip)

当我使用POST创建提示时,我不知道如何在创建时添加关系。

我可以这样做:创建资源后Add relation to another node in SDN4 + REST,但我只想用一个查询来做。

编辑: 我试着发布这个:

'{"content":"TEST", "forClass":"/class/2", "againstClass":"/class/2"}'

并且项目已创建,没有引发InvalidArgument异常,但如果我转到我的课程资源提示,我没有任何提示:

GET /class/2/tips

{
  "_embedded" : {
    "tip" : [ ]
  },
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/class/2/tips"
    }
  }
}

GET /tip/9(创建的):

{
  "content" : "TEST",
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/tip/9"
    },
    "tip" : {
      "href" : "http://localhost:8080/tip/9"
    },
    "author" : {
      "href" : "http://localhost:8080/tip/9/author"
    },
    "againstClass" : {
      "href" : "http://localhost:8080/tip/9/againstClass"
    },
    "forClass" : {
      "href" : "http://localhost:8080/tip/9/forClass"
    }
  }
}

GET /tip/9/forClass

{
  "name" : null,
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/class/2"
    },
    "bnSClass" : {
      "href" : "http://localhost:8080/class/2"
    },
    "tips" : {
      "href" : "http://localhost:8080/class/2/tips"
    }
  }
}

0 个答案:

没有答案