Java Spring hateoas如何为单个链接设置关系和数组

Java Spring hateoas如何为单个链接设置关系和数组,java,spring-boot,spring-hateoas,Java,Spring Boot,Spring Hateoas,有人能告诉我如何使用hateoas获得下面的回复吗 { "ticketID" : 345, "links": [ { "rel": "self", "href": "rest/INL_TM/rest/v1/ticket/345" } ] } 但我得到的回应是 { "ticketID" : 345, "links": { "rel": "self", "href": "rest/INL_TM

有人能告诉我如何使用hateoas获得下面的回复吗

{
    "ticketID" : 345,
    "links": [ {
        "rel": "self",
        "href": "rest/INL_TM/rest/v1/ticket/345"
    } ]
}
但我得到的回应是

{
    "ticketID" : 345,
    "links":  {
        "rel": "self",
        "href": "rest/INL_TM/rest/v1/ticket/345"
    }
}
另外,如何将rel设置为自定义值?我想要像rel=“getTicket”这样的东西

Greeting.java

public class Greeting extends ResourceSupport {

    private final String content;

    @JsonCreator
    public Greeting(@JsonProperty("content") String content) {
        this.content = content;
    }

    public String getContent() {
        return content;
    }
}
GreetingController.java

@Controller
public class GreetingController {

    private static final String TEMPLATE = "Hello, %s!";

    @RequestMapping("/greeting")
    @ResponseBody
    public HttpEntity<Greeting> greeting(
            @RequestParam(value = "name", required = false, defaultValue = "World") String name) {

        Greeting greeting = new Greeting(String.format(TEMPLATE, name));
        greeting.add(linkTo(methodOn(GreetingController.class).greeting(name)).withSelfRel());

        return new ResponseEntity<Greeting>(greeting, HttpStatus.OK);
    }
}
@Controller
public class GreetingController {       

@RequestMapping("/greeting")
@ResponseBody
public Resource<Greeting> greeting(
@RequestParam(value = "name", required = false, defaultValue = "World") String name) {

Resource<Greeting> resourceResponse = new Resource<Greeting>("Some String");
resourceResponse.add(linkTo(methodOn(GreetingController.class).greeting("Some String")).withSelfRel());
return resourceResponse;
   }
}
@控制器
公共类迎宾控制器{
私有静态最终字符串模板=“您好,%s!”;
@请求映射(“/greeting”)
@应答器
公共HttpEntity问候语(
@RequestParam(value=“name”,required=false,defaultValue=“World”)字符串名){
问候语=新问候语(String.format(模板、名称));
add(linkTo(methodOn(GreetingController.class).greeting(name)).withSelfRel());
返回新的响应(问候语,HttpStatus.OK);
}
}

提前感谢

在模型课中扩展资源支持。 返回资源而不是响应

GreetingController.java

@Controller
public class GreetingController {

    private static final String TEMPLATE = "Hello, %s!";

    @RequestMapping("/greeting")
    @ResponseBody
    public HttpEntity<Greeting> greeting(
            @RequestParam(value = "name", required = false, defaultValue = "World") String name) {

        Greeting greeting = new Greeting(String.format(TEMPLATE, name));
        greeting.add(linkTo(methodOn(GreetingController.class).greeting(name)).withSelfRel());

        return new ResponseEntity<Greeting>(greeting, HttpStatus.OK);
    }
}
@Controller
public class GreetingController {       

@RequestMapping("/greeting")
@ResponseBody
public Resource<Greeting> greeting(
@RequestParam(value = "name", required = false, defaultValue = "World") String name) {

Resource<Greeting> resourceResponse = new Resource<Greeting>("Some String");
resourceResponse.add(linkTo(methodOn(GreetingController.class).greeting("Some String")).withSelfRel());
return resourceResponse;
   }
}
@控制器
公共类迎宾控制器{
@请求映射(“/greeting”)
@应答器
公共资源问候语(
@RequestParam(value=“name”,required=false,defaultValue=“World”)字符串名){
resourceResponse=新资源(“某些字符串”);
add(linkTo(methodOn(GreetingController.class).greeting(“一些字符串”)).withSelfRel());
返回资源响应;
}
}
Maven依赖

<dependency>
   <groupId>org.springframework.hateoas</groupId>
   <artifactId>spring-hateoas</artifactId>
   <version>0.16.0.RELEASE</version>
</dependency>

org.springframework.hateoas
春风
0.16.0.1版本

在模型类中扩展资源支持。 返回资源而不是响应

GreetingController.java

@Controller
public class GreetingController {

    private static final String TEMPLATE = "Hello, %s!";

    @RequestMapping("/greeting")
    @ResponseBody
    public HttpEntity<Greeting> greeting(
            @RequestParam(value = "name", required = false, defaultValue = "World") String name) {

        Greeting greeting = new Greeting(String.format(TEMPLATE, name));
        greeting.add(linkTo(methodOn(GreetingController.class).greeting(name)).withSelfRel());

        return new ResponseEntity<Greeting>(greeting, HttpStatus.OK);
    }
}
@Controller
public class GreetingController {       

@RequestMapping("/greeting")
@ResponseBody
public Resource<Greeting> greeting(
@RequestParam(value = "name", required = false, defaultValue = "World") String name) {

Resource<Greeting> resourceResponse = new Resource<Greeting>("Some String");
resourceResponse.add(linkTo(methodOn(GreetingController.class).greeting("Some String")).withSelfRel());
return resourceResponse;
   }
}
@控制器
公共类迎宾控制器{
@请求映射(“/greeting”)
@应答器
公共资源问候语(
@RequestParam(value=“name”,required=false,defaultValue=“World”)字符串名){
resourceResponse=新资源(“某些字符串”);
add(linkTo(methodOn(GreetingController.class).greeting(“一些字符串”)).withSelfRel());
返回资源响应;
}
}
Maven依赖

<dependency>
   <groupId>org.springframework.hateoas</groupId>
   <artifactId>spring-hateoas</artifactId>
   <version>0.16.0.RELEASE</version>
</dependency>

org.springframework.hateoas
春风
0.16.0.1版本

关于第二个问题。定制Rels。在控制器“with selfrel()”中添加一个链接,如果使用with selfrel(“SomeString”),那么对于第二个问题,rel将是SomeString。定制Rels。在控制器“with selfrel()”中添加一个链接,如果使用withRel(“SomeString”),则rel将是SomeString