Я использую spring-boot-1.5.8 и spring-boot-hateoas в моем проекте. Пожалуйста, найдите код ниже
@SpringBootApplication
@EnableHypermediaSupport(type = EnableHypermediaSupport.HypermediaType.HAL)
public class SpringBootK8Application {
public static void main(String[] args) {
SpringApplication.run(SpringBootK8Application.class, args);
}
}
Контроллер
@GetMapping("/greeting")
public ResponseEntity<Greeting> greeting(@RequestParam(value = "name", required = false, defaultValue = "World") String name) {
Greeting greeting = new Greeting(String.format("Hello, %s!", name));
greeting.add(linkTo(methodOn(HelloController.class).greeting(name)).withSelfRel());
Link link = new Link("http://localhost:8080/something").withRel("ACTIONS");
SuperLink superLink = new SuperLink(link, MediaTypes.HAL_JSON_VALUE,"GET","/v1/books","v1/bookBy");
greeting.add(superLink);
return new ResponseEntity<>(greeting, HttpStatus.OK);
}
Фактический объем производства:
{
"content": "Hello, World!",
"_links": {
"self": {
"href": "http://localhost:9086/greeting?name=World"
},
"ACTIONS": {
"href": "http://localhost:8080/something",
"template": "http://localhost:8080/something/v1/books",
"type": "application/hal+json",
"method": "GET",
"describedBy": "http://localhost:8080/something/v1/bookBy"
}
}
}
Ожидаемый результат:
{
"content": "Hello, World!",
"_links": {
"self": {
"href": "http://localhost:9086/greeting?name=World"
},
"ACTIONS": [
"href": "http://localhost:8080/something",
"template": "http://localhost:8080/something/v1/books",
"type": "application/hal+json",
"method": "GET",
"describedBy": "http://localhost:8080/something/v1/describedBy"
]
}
}
Я хотел бы показать действие в виде массива. Если я добавлю более одного элемента в атрибут ACTIONS, он покажет массив, но если у нас будет только один элемент, он будет показан как объект. Я всегда хотел бы отображать этот элемент в виде массива. Любая помощь будет действительно заметной.