0
我有一個web應用程序,我在其中使用Spring MVC與Spring Hateoas和HypermediaType HAL。在我的控制器中,我使用資源類來放置一個主題列表。 問題是,如果我把一個元素列表中,結果json的結構與如果我把2個元素分開。 如果列表只包含一個元素,它將刪除列表並將其作爲單個對象返回。 下面兩個控制器方法我粘貼生成的Json。導致JSON有不同的結構
我現在想知道,爲什麼行爲是這樣的,我如何強迫Hateoas在結果json中使用列表?
@Controller
@RequestMapping(value = "/collections")
public class CollectionController {
@RequestMapping
public HttpEntity<Resources<Subject>> getOneSubject() {
Subject subject = new Subject();
Resources<Subject> subjects = new Resources<>(asList(subject));
return new ResponseEntity<>(subjects, HttpStatus.OK);
}
/*HTTP-Response Body:
{
"_embedded": {
"subject": {
"name": null
}
}
}
*/
@RequestMapping
public HttpEntity<Resources<Subject>> getTwoSubjects() {
Subject subject = new Subject();
Resources<Subject> subjects = new Resources<>(asList(subject, subject));
return new ResponseEntity<>(subjects, HttpStatus.OK);
}
/*HTTP-Response Body:
{
"_embedded": {
"subjectList": [
{
"name": null
},
{
"name": null
}
]
}
}*/
}
HATEOAS配置:
@Configuration
@EnableHypermediaSupport(type = EnableHypermediaSupport.HypermediaType.HAL)
public class HateoasConfig {
}
庫版本,你使用的是哪個?感覺就像你在抱怨的是在Spring HATEOAS 0.9中修復的...... –
我正在使用Spring HATEOAS 0.8。我無法測試0.9是否可以解決問題,因爲當我將HATEOAS更新爲0.9時,我的Hateoas配置使用HAL(我將仇恨配置添加到我的第一篇文章中)將被忽略。 –
現在我將我的Spring HATEOAS版本更新到0.10.0.TRAVERSON-SNAPSHOT,因爲在這種情況下,忽略HAL配置的問題是固定的。可悲的是,我的第一篇文章中描述的問題仍然存在。 –