2

我最近实现了 Spring Data REST ( http://www.springsource.org/spring-data/rest ),以便通过 REST 接口自动公开 CRUD 功能。

GET 和 POST 都按预期工作,但是在使用 PUT 动词时我得到了 405 Method Not Allowed。

根据文档

Verb    Method
GET     CrudRepository<ID,T>.findOne(ID id)
POST    CrudRepository<ID,T>.save(T entity)
PUT     CrudRepository<ID,T>.save(T entity)
DELETE  CrudRepository<ID,T>.delete(ID id)

默认情况下,所有这些方法都导出到客户端。我已经阅读了这里的文档(http://static.springsource.org/spring-data/rest/docs/1.1.0.M1/reference/htmlsingle/),但似乎找不到这种行为的原因.

谁能建议我可能哪里出错了?我提供了一个 RepositoryRestMvcConfiguration 类,它为我的所有实体类定义了资源映射。

4

1 回答 1

12

您正在尝试对POSTPUT请求使用相同的 url,但PUT通常需要必须更新的对象的 id。

Spring 确实有映射localhost:8080/<applicationname>/<entityName>,但仅适用于POST请求,因此会出现错误。

尝试使用PUT

http://localhost:8080/<applicationname>/<entityName>/<objectId>
于 2013-08-19T09:23:41.817 回答