0
저는 Spring Hateo와 함께 Spring MVC를 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를 업데이트하면 HAL을 사용하는 Hateoas 설정 (첫 번째 게시물에 hateoas 설정을 추가 함)이 무시되므로 0.9가 문제를 해결하면 테스트 할 수 없습니다. –
이제 스프링 HATEOAS 버전을 0.10.0.TRAVERSON-SNAPSHOT으로 업데이트합니다. 무시 된 HAL 구성의 문제가 수정 되었기 때문입니다. 슬프게도 내 첫 번째 게시물에 설명 된 문제가 여전히 존재합니다. –