如何使用 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 标记字段,使它们反映为数据库列。