Java rest util:构建REST URL的优雅方法

时间:2018-10-04 11:23:27

标签: java spring spring-boot

当前,我正在使用字符串连接来构建网址。

String url = "http://localhost:8080/bo/" + docId;

HttpEntity<String> httpEntity = this.handleJWT();

restTemplate
    .exchange(
        url,
        HttpMethod.DELETE,
        httpEntity,
        Void.class
    );

使用Java构建Rest URL是否更优雅?

3 个答案:

答案 0 :(得分:2)

您可以这样操作:

String url = "http://localhost:8080/bo/{docId}";

restTemplate
.exchange(
    url,
    HttpMethod.DELETE,
    httpEntity,
    Void.class,
    docId
);

答案 1 :(得分:2)

您也可以使用UriComponentsBuiler

String url = "http://localhost:8080/bo/{docId}"
UriComponentsBuilder
            .fromHttpUrl(url)
            .buildAndExpand(docId)
            .toUriString();

并且应该从属性中插入url。

答案 2 :(得分:0)

是的,有。绝对不建议像您一样对URL进行硬编码。

Spring Boot Rest允许您通过诸如@RequestMapping之类的注释将请求映射到URL。

在您的情况下,带有@RestController注释的类中的方法签名可能像这样:

@RequestMapping(value = "/bo/{docId}", method = RequestMethod.DELETE)
public void request(@PathVariable("docId") int docId){
   ...
}

例如在浏览器中输入localhost:8080 / bo / 123会导致方法调用以“ 123”作为传递的参数。

使用此布局,您可以非常方便地触发方法调用。我建议您阅读本Spring Boot Rest教程。 它提供了一个很好的起点,说明如何通过平稳的交互来正确设置Spring Boot应用程序。