簡體   English   中英

Spring Hateoas如何設置關系並為單個鏈接提供數組

[英]Spring hateoas how to set relationship and have array for single link also

有人可以讓我知道如何使用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);
    }
}

提前致謝

在模型類中擴展ResourceSupport。 返回資源而不是ResponseEntity

GreetingController.java

@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;
   }
}

Maven依賴

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM