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

Pra*_*kam 3 java spring spring-data-jpa spring-data-rest spring-boot

嗨,我正在尝试使用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;


}
Run Code Online (Sandbox Code Playgroud)

和数据存储库如下:

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

}
Run Code Online (Sandbox Code Playgroud)

我怎样才能做到这一点?

And*_*lko 5

您可以使用@RestResource(exported = false).

方法是

T findOne(ID id);         // /users/<ID>
Iterable<T> findAll();    // /users
Iterable<T> findAll(Iterable<ID> ids);
Run Code Online (Sandbox Code Playgroud)

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


提示:没有必要用 标记字段@Column以使其反映为数据库列。