我正在使用Spring Boot(2.1.1)自动创建---
hosts: localhost
tasks:
- name: Creating s3Bucket
s3_bucket:
name: ansiblebucket1234567890
tags:
- createbucket
- name: Simple PUT operation
aws_s3:
bucket: ansiblebucket1234567890
object: /my/desired/key.txt
src: /etc/ansible/myfile.txt
mode: put
tags:
- putfile
- name: Create an empty bucket
aws_s3:
bucket: ansiblebucket12345678901234
mode: create
permission: private
tags:
- emptybucket
接口的HAL REST API。
在大多数情况下,这些接口为空,例如:
ansible-playbook creates3bucket.yml --tags "createbucket,putfile"
当我打开REST基本路径时,将为JpaRepository
生成以下链接:
public interface LevelRepository extends JpaRepository<Level, Long> {}
当我遵循levels
时,将得到预期的第0页及其10个元素。
但是给定的自我链接是:
"levels": {
"href": "http://localhost:8080/admin/levels{?page,size,sort}",
"templated": true
}
我原本期望:
http://localhost:8080/admin/levels?size=10
或"self": {
"href": "http://localhost:8080/admin/levels{&sort}",
"templated": true
}
我不确定这是错误还是功能?可以得到预期的行为吗?
我找到了关于该主题的以下问题:Error on generating self link on pageable resource 但是给定的解决方案没有帮助,因为我已经在使用较新的版本。
其他信息(为什么需要它?)
此行为中断了客户端上以下链接的流程。 如果用户想直接跳到页面X,或者想要改变页面大小,则必须重新使用原始链接。 这不是一个大的解决方法,但是它不像模板和直接跟踪给定的自我链接那样好。
答案 0 :(得分:0)
您可以自己重新实现self
链接。首先,我认为您使用HATEOAS
库:
<dependency>
<groupId>org.springframework.hateoas</groupId>
<artifactId>spring-hateoas</artifactId>
</dependency>
让我们考虑一下您的某些实体-ExampleEntity
:
public class ExampleEntity extends ResourceSupport {
private String id;
private String name;
private String surname;
// standard getters and setters
}
您扩展了ResourceSupport
类,它具有link
属性,我们可以使用add
方法使用该属性:
ExampleEntity exampleEntity = new ExampleEntity();
Link selfLink = ControllerLinkBuilder.linkTo(YourController.class).slash(id).withSelfRel();
exampleEntity.add(selfLink);
因此,您可以更改自我链接的行为
答案 1 :(得分:0)
发布此问题后,我发现以下forward progress guarantee描述了相同的行为。 根据票证中的评论,不应对自我链接进行模板化。
尽管生成的自我链接是模板化的,但最好忽略给定的参数。