如何使用 Spring 数据 REST 公开可写 REST api?
How to expose only writable REST api with Spring Data REST?
您好,我正在尝试使用 Spring boot + Spring Data JPA + Spring Data REST 开发 REST api
我只想公开我的用户(基本上没有 GET 或 GET ALL)实体的可写部分,如下所示
@Entity(name = "User")
public class User implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
int id;
@Column
String login;
@Column
String password;
@Column
String username;
@Column
String address1;
@Column
String address2;
@Column
String city;
@Column
String state;
@Column
String zip;
@Column
String country;
@Column
String creditcard;
}
数据存储库如下:
@RepositoryRestResource(path = "users")
public interface UserRepository extends CrudRepository<User, String> {
}
我怎样才能做到这一点?
您可以使用 @RestResource(exported = false)
覆盖和标记方法。
方法是
T findOne(ID id); // /users/<ID>
Iterable<T> findAll(); // /users
Iterable<T> findAll(Iterable<ID> ids);
您将获得所有 GET
存储库请求的 405 Method Not Allowed
HTTP 状态。
提示:It is not necessary 用 @Column
标记字段,使它们反映为数据库列。
您好,我正在尝试使用 Spring boot + Spring Data JPA + Spring Data REST 开发 REST api
我只想公开我的用户(基本上没有 GET 或 GET ALL)实体的可写部分,如下所示
@Entity(name = "User")
public class User implements Serializable {
@Id
@GeneratedValue(strategy= GenerationType.AUTO)
int id;
@Column
String login;
@Column
String password;
@Column
String username;
@Column
String address1;
@Column
String address2;
@Column
String city;
@Column
String state;
@Column
String zip;
@Column
String country;
@Column
String creditcard;
}
数据存储库如下:
@RepositoryRestResource(path = "users")
public interface UserRepository extends CrudRepository<User, String> {
}
我怎样才能做到这一点?
您可以使用 @RestResource(exported = false)
覆盖和标记方法。
方法是
T findOne(ID id); // /users/<ID>
Iterable<T> findAll(); // /users
Iterable<T> findAll(Iterable<ID> ids);
您将获得所有 GET
存储库请求的 405 Method Not Allowed
HTTP 状态。
提示:It is not necessary 用 @Column
标记字段,使它们反映为数据库列。