参考http://tools.ietf.org/html/rfc6902#appendix-A.14:
A.14. ~ 转义排序
示例目标 JSON 文档:
Run Code Online (Sandbox Code Playgroud){ "/": 9, "~1": 10 }
一个 JSON 补丁文档:
Run Code Online (Sandbox Code Playgroud)[ {"op": "test", "path": "/~01", "value": 10} ]
生成的 JSON 文档:
Run Code Online (Sandbox Code Playgroud){ "/": 9, "~1": 10 }
我正在编写这个 RFC 的一个实现,我一直坚持这个。这是要达到什么目的,它应该如何工作?
假设第一部分的答案是“允许引用包含 /s 的 json 键名”,你会怎么做?
根据Sprind Data Rest Docs,它支持媒体类型application/patch+json
。也许这个假设是错误的,但我认为这意味着 Spring Data Rest 支持JSON Patch (RFC 6902)。你如何让它发挥作用?
这是我尝试过的:
将这些依赖项添加到我的build.gradle
:
compile('org.springframework.boot:spring-boot-starter-data-rest')
compile('org.springframework.boot:spring-boot-starter-web')
compile('org.springframework.data:spring-data-keyvalue')
Run Code Online (Sandbox Code Playgroud)
使用以下代码:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.data.annotation.Id;
import org.springframework.data.map.repository.config.EnableMapRepositories;
import org.springframework.data.repository.CrudRepository;
import org.springframework.data.repository.query.Param;
import org.springframework.data.rest.core.annotation.RepositoryRestResource;
import org.springframework.data.rest.core.annotation.RestResource;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.UUID;
@SpringBootApplication
@EnableMapRepositories
public class SpringDataRest1Application {
public static void main(String[] args) {
SpringApplication.run(SpringDataRest1Application.class, args);
}
}
@RepositoryRestResource
interface UserRepository extends CrudRepository<User, UUID> {
@RestResource(path = "by-name")
List<User> findByName(@Param("name") String …
Run Code Online (Sandbox Code Playgroud)