java - post 请求成功后,postman 返回 null 值

标签 java rest controller postman

当我在 Postman 上发出发布请求时,我收到“200 OK”状态。但是执行 get 请求会返回 null JSON 值

这是我的用户类别

    public class User {
    private Integer id;
    private String name;
    private Date birthDate;
    
    public User(Integer id, String name, Date birthDate) {
        super();
        this.id = id;
        this.name = name;
        this.birthDate = birthDate;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public Date getBirthDate() {
        return birthDate;
    }

    public void setBirthDate(Date birthDate) {
        this.birthDate = birthDate;
    }

    @Override
    public String toString() {
        return String.format("User [id=%s, name=%s, birthDate=%s]", id, name, birthDate);
    }

}

UserDaoService 类

    @Component
public class UserDaoService {

    static List<User> users = new ArrayList<>();
    
    public static int userCount = 3;
    
    static {
        users.add(new User(1,"Eva",new Date()));
        users.add(new User(2,"Mike",new Date()));
        users.add(new User(3,"Dave",new Date()));
    }
    
    public List<User> findAllUsers() {
        return users;
    }
    
    public User save(User user) {
        
        if(user.getId() == null)
            user.setId(++userCount);
        
        users.add(user);
        return user;
    }
    
    public User findOne(int id) {
        
        for(User user:users )
            if(user.getId() == id)
                return user;
        
        return null;
    }
    
}

和 Controller

    @RestController
public class UserResource {
    
    @Autowired
    private UserDaoService service;

    @GetMapping("/users")
    public List<User> retrieveAllUsers(){
        return service.findAllUsers();
    }
    
    @GetMapping("users/{id}")
    public User retrieveUser(@PathVariable int id) {
        return service.findOne(id);
    }
    
    @PostMapping("/users")
    public void createUser(User user) {
        User saved = service.save(user);
    }
    
}

这是我发出的帖子请求

    {
    "name": "Luna",
    "birthDate": "2000-08-23T23:58:45.849+00:00"
}

我没有传入 ID,因为它已包含在后端中。在发出 get 请求时,名称和出生日期都有空值,但 ID 设置正确。

有什么想法我可能会出错吗?

最佳答案

post 方法参数中缺少 @RequestBody

  @PostMapping("/users")
    public void createUser(@RequestBody User user) {
        User saved = service.save(user);
    }

关于java - post 请求成功后,postman 返回 null 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68900467/

相关文章:

java - 使用实时数据和改造 Android 时图像无法正确显示

java - Solr 报告 : "Connection refused" when running import

java - 使用相同 REST 调用的不同操作

Android客户端-服务器通信格式

Grails - Servlet 3.0 异步请求处理

javascript - Angular JS - View 不起作用

java - Angularjs $http Spring Rest Controller - 404 错误

java - 在 Wicket 应用程序中同时运行计时器

java - 仅使用邻接矩阵的 BFS 最短路径?

java - Java Rest API JAX-RS 中的多个参数 - GET 方法