如何使用Spring Data REST仅公开可写REST API?

时间:2017-09-14 11:02:03

标签: java spring spring-boot spring-data-jpa spring-data-rest

您好我正在尝试使用 Spring启动+ 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;


}

和datarepository如下:

@RepositoryRestResource(path = "users")
public interface UserRepository extends CrudRepository<User, String> {

}

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:4)

您可以使用@RestResource(exported = false)覆盖和标记方法。

方法是

T findOne(ID id);         // /users/<ID>
Iterable<T> findAll();    // /users
Iterable<T> findAll(Iterable<ID> ids);

您将获得对存储库的所有405 Method Not Allowed个请求的GET HTTP状态。

提示:It is not necessary标记@Column字段,使其反映为数据库列。