首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Spring Hateoas生成包含sortBy查询参数(及其可能的值)的Hateoas链接?

如何使用Spring Hateoas生成包含sortBy查询参数(及其可能的值)的Hateoas链接?
EN

Stack Overflow用户
提问于 2019-09-08 04:31:26
回答 1查看 76关注 0票数 0

我有一个下面的控制器(例如)方法:

代码语言:javascript
复制
@Autowired
EntityLinks entityLinks;

@GetMapping(value = "{userId}", params = "sortBy")
public Resource<User> getUser(@PathVariable Integer userId, @RequestParam String sortBy ){

        Resource<User> userResource = new Resource<>(new User());

        userResource.add(entityLinks.linkToSingleResource(getClass(), userId));    
        return userResource;

}

GET http://localhost:8085/api/v1/test/11?sortBy返回给我:

代码语言:javascript
复制
{
    "name": null,
    "email": null,
    "_links": {
        "self": {
            "href": "http://localhost:8085/api/v1/test/11"
        }
    }
}

我关心的是,来自"href": "http://localhost:8085/api/v1/test/11"的任何客户端(或使用该应用程序接口的人)如何猜测该应用程序接口是否需要sortBy查询参数?sortBy需要什么值,例如idname

有没有办法生成更有帮助的href?例如"href": "http://localhost:8085/api/v1/test/11{?sortBy=id,name}"。表示sortBy只能接受idname

EN

回答 1

Stack Overflow用户

发布于 2019-09-09 15:45:13

您可以构建一个Link对象并将其添加到Resource。请尝试:

代码语言:javascript
复制
@GetMapping(value = "{userId}", params = "sortBy")
public Resource<User> getUser(@PathVariable Integer userId, @RequestParam String sortBy ){

        Link selfLink = new Link(entityLinks.linkFor(User.class) + "/" + fooId + "{?sortBy=id,name}").withSelfRel();

        Resource<User> resource = new Resource<>(new User());
        resource.add(selfLink);    
        return userResource;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57837254

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档