我正在使用Spring Data JPA和Spring Data REST开发基于组件的CRUD应用程序。我有几个组成部分。例如, 系统 组件具有User模型和UserRepository。组件由程序包名称区分。喜欢com.example.app.<component_name>
User
UserRepository
com.example.app.<component_name>
因此,为了使我的REST API看起来更整洁,我需要实现以下API URL。
host:8080/<component_name>/<model_collection_name>
例如
host:8080/system/users
我在存储库中执行了以下操作
@RepositoryRestResource(collectionResourceRel = "users", path = "system/users") public interface UserRepository extends PagingAndSortingRepository<User, Long> { ... }
当我转到 http://localhost:8080
http://localhost:8080
{ "_links": { "users": { "href": "http://localhost:8080/system/users{?page,size,sort}", "templated": true }, ...
但是当我去 http://localhost:8080/system/users
http://localhost:8080/system/users
它给出了一个错误
IST 2015年5月22日17:56:37 Fri发生意外错误(类型=未找到,状态= 404)。无可用讯息
注意 :如果我将路径映射到system- users它,那么它可以正常工作,但是当我/在诸如的路径中使用a时system/users,它将中断并给出错误。
system- users
/
system/users
不支持。
一般而言:不要专注于设计URL。根据定义,URI的结构对于REST客户端一定不重要:
服务器或客户端软件在任何时候都不需要了解或理解URI的含义-它们仅充当资源创建者(人工命名机构)可以通过其将表示与语义标识关联的语义相关联的渠道。 URI。
(摘自Roy Fielding,《体系结构样式和基于网络的软件体系结构的设计》,第6.2.4节)
如果遵循该标准,则需要选择关系名称,为您公开的资源设计表示形式等。
就是说,目前不支持您要查找的内容。如果您认为值得添加此功能(由于上述参数,我认为不是),请随时在我们的错误跟踪器中打开故障单。
由于SpringMVC映射的工作方式,尤其是奇异路径段和非奇异路径段的映射组合可能会引起一些歧义,因此实现起来可能非常棘手。所有这些使得该请求不太可能得到跟进。