spring-data-rest-webmvc 2.2.1.RELEASE中弹簧数据休息输出格式的更改

时间:2015-01-01 15:12:13

标签: rest spring-data-rest hateoas spring-hateoas

我正在使用spring data rest web mvc 2.2.1.RELEASE。 我期待以下格式

{
    "content": [ {
        "price": 499.00,
        "description": "Apple tablet device",
        "name": "iPad",
        "links": [ {
            "rel": "self",
            "href": "http://localhost:8080/product/1"
        } ],
        "attributes": {
            "connector": "socket"
        }
    }, {
        "price": 49.00,
        "description": "Dock for iPhone/iPad",
        "name": "Dock",
        "links": [ {
            "rel": "self",
            "href": "http://localhost:8080/product/3"
        } ],
        "attributes": {
            "connector": "plug"
        }
    } ],
    "links": [ {
        "rel": "product.search",
        "href": "http://localhost:8080/product/search"
    } ]
}   

但我得到这样的输出:

    {
  "_links" : {
    "self" : {
      "href" : "http://localhost:8080/people{?page,size,sort}",
      "templated" : true
    },
    "search" : {
      "href" : "http://localhost:8080/people/search"
    }
  },
  "_embedded" : {
    "people" : [ {
      "firstName" : "Frodo",
      "lastName" : "Baggins",
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/people/1"
        }
      }
    }, {
      "firstName" : "Frodo",
      "lastName" : "shukla",
      "_links" : {
        "self" : {
          "href" : "http://localhost:8080/people/2"
        }
      }
    } ]
  },
  "page" : {
    "size" : 20,
    "totalElements" : 2,
    "totalPages" : 1,
    "number" : 0
  }
    }

为什么我要使用_embedded代替内容 _links代替链接

并且缺少rel属性..

我试图将json反序列化回hateos资源,但由于格式的改变,我无法实现这一点。

提前感谢您的帮助

3 个答案:

答案 0 :(得分:0)

SDR 2.X以HAL格式输出内容,因此_links& _embedded。有关详细信息,请参阅HAL规范

答案 1 :(得分:0)

您期望的结果是spring-data-rest 1.x生成的结果。 2.x中的默认格式为HAL。但是,应该通过更改此错误的解决方案中所述的默认媒体格式来回退到旧格式:https://jira.spring.io/browse/DATAREST-213

答案 2 :(得分:0)

我按照HAL规范/

调整了我的JPA Rest Client