这些只是 Spring Mongo 数据休息 API 上可用的休息端点。
{[/{people}],methods=[OPTIONS],produces=[application/hal+json || application/json]}
{[/{people}],methods=[HEAD],produces=[application/hal+json || application/json]}
{[/{people}],methods=[GET],produces=[application/hal+json || application/json]}
{[/{people}],methods=[GET],produces=[application/x-spring-data-compact+json || text/uri-list]
{[/{people}],methods=[POST],produces=[application/hal+json || application/json]}
{[/{people}/{id}],methods=[OPTIONS],produces=[application/hal+json || application/json]}
{[/{people}/{id}],methods=[HEAD],produces=[application/hal+json || application/json]}
{[/{people}/{id}],methods=[GET],produces=[application/hal+json || application/json]}
{{/{people}/{id}],methods=[PUT],produces=[application/hal+json || application/json]}
{[/{people}/{id}],methods=[PATCH],produces=[application/hal+json || application/json]}
{[/{people}/{id}],methods=[DELETE],produces=[application/hal+json || application/json]}
{[/ || ],methods=[OPTIONS],produces=[application/hal+json || application/json]}
{[/ || ],methods=[HEAD],produces=[application/hal+json || application/json]}
{[/ || ],methods=[GET],produces=[application/hal+json || application/json]}
{[/{people}/{id}/{property}],methods=[GET],produces=[application/hal+json || application/json]}
{[/{people}/{id}/{property}/{propertyId}],methods=[GET],produces=[application/hal+json || application/json]}
{[/{people}/{id}/{property}],methods=[DELETE],produces=[application/hal+json || application/json]}
{[/{people}/{id}/{property}],methods=[GET],produces=[application/x-spring-data-compact+json || text/uri-list]}
{[/{people}/{id}/{property}],methods=[PATCH || PUT || POST],consumes=[application/json || application/x-spring-data-compact+json || text/uri-list],produces=[application/hal+json || application/json]}
{[/{people}/{id}/{property}/{propertyId}],methods=[DELETE],produces=[application/hal+json || application/json]}
{[/{people}/search],methods=[HEAD],produces=[application/hal+json || application/json]}
{[/{people}/search],methods=[GET],produces=[application/hal+json || application/json]}
{[/{people}/search],methods=[OPTIONS],produces=[application/hal+json || application/json]}
{[/{people}/search/{search}],methods=[GET],produces=[application/hal+json || application/json]}
{[/{people}/search/{search}],methods=[GET],produces=[application/x-spring-data-compact+json]}
{[/{people}/search/{search}],methods=[OPTIONS],produces=[application/hal+json || application/json]}
{[/{people}/search/{search}],methods=[HEAD],produces=[application/hal+json || application/json]}
如果我们知道某个特定文档的 _id,我们就可以获得一个个人文档。
我们只能使用搜索 api 获取 _embedded json 对象。例如,
@RepositoryRestResource(collectionResourceRel = "people", path = "people")
public interface PersonRepository extends MongoRepository<Person, String> {
List<Person> findAllByIdIsNotNull();
}
由于 _id 在 MongoDB 中不会为空,如果我们点击此端点 http://localhost:8080/people/search/findAllByIdIsNotNull,我们可以获取所有文档。响应如下。
{
"_embedded": {
"people": [{
"firstName": "N1",
"lastName": "N2",
"_links": {
"self": {
"href": "http://localhost:8080/people/59d54d2bb13148a7e93953c8"
},
"person": {
"href": "http://localhost:8080/people/59d54d2bb13148a7e93953c8"
}
}
}
}
仅获取个人文档的最佳方法是使用一些 json 解析 api,例如 shell 脚本中的 jq 或 java 中的 gson/jackson 等。
希望这会有所帮助。