如何使用Spring Data REST暴露只可写的REST API?

3

你好,我正在尝试使用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> {

}

我该如何实现这个?

请参考以下链接:https://dev59.com/X14b5IYBdhLWcg3wbA-B - Vinod Bokare
1个回答

5
你可以使用@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状态。


提示: 没有必要使用@Column标记字段来将其反射为数据库列。参考链接


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接