使用适用于PHP的Hateoas库获取子资源URI

时间:2015-08-06 14:55:24

标签: php api rest doctrine-orm hateoas

以下是User GET实体与Hateoas库的/** * [...] * * @Hateoas\Relation( * "self", * href=@Hateoas\Route("api_get_user", parameters={"id"="expr(object.getId())"}) * ) * @Hateoas\Relation( * "placeofbirth", * href="expr(link(object.getPlaceOfBirth(), 'self'))", * exclusion=@Hateoas\Exclusion(excludeIf="expr(object.getPlaceOfBirth() === null)") * ) */ class User { // [...] /** * @ORM\OneToOne(targetEntity="Place") * @Serializer\Exclude */ private $placeOfBirth; // [...] } 实体:

_links

我的REST响应是正确的。 OneToOne部分预计会包含{ // [...] "_links": { "self": { "href": "\/api\/v0.1\/users\/1" }, "placeofbirth": { "href":"\/api\/v0.1\/places\/3" } } } 关系的URI:

OneToMany

但是,我不知道如何使用/** * @ORM\OneToMany(targetEntity="Place", mappedBy="visitor") * @Serializer\Exclude */ private $visitedPlaces; 关系获得相同的效果。例如:

{
  // [...]
  "_links": {
    "self": {
        "href": "\/api\/v0.1\/users\/1"
    },
    "visitedPlaces": [
        { "href": "\/api\/v0.1\/place\/1" },
        { "href": "\/api\/v0.1\/place\/2" },
        { "href": "\/api\/v0.1\/place\/3" },
        { "href": "\/api\/v0.1\/place\/4" }
    ]
  }
}

我想(等等):

visitedPlaces

我知道我可以将import os import re path = input() for root, dir, files in os.walk(path): for eachXLF in files: os.chdir(root) openXLF = open(eachXLF, 'r+') XLF = openXLF.read() repl = re.sub(r'<seg-source>(.*?)</seg-source>', 'xxx', XLF) openXLF.write(repl) openXLF.close() 作为embedded resources,但它确实有效,但这不是我想要的。我不想获得整个对象,只需要资源URI,就像我对单一资源关系一样(参见出生地)。

是否有可能,如果是这样的话?

0 个答案:

没有答案