【问题标题】:How to pass request parameters in the postman for this particular method?如何在邮递员中为此特定方法传递请求参数?
【发布时间】:2021-12-01 17:02:34
【问题描述】:

我正在尝试实现从 Github 获得的这个 Spring 应用程序。我仍在学习过程中,所以这可能是一个基本问题。对于此更新用户方法,我需要在邮递员正文中传递哪些参数?我在邮递员正文中写了 { "id":1,"password":"1234"} 但它显示了 400 错误的语法错误。

public void updateUser(int id, String parameter, String update)
    {
        Session session=sessionFactory.openSession();
        Transaction tx=session.beginTransaction();
        //System.out.print(mail);
         List<User_org> userList = userList();
         for(User_org i: userList)
         {
             User_org u= i;
             if(u.getId()==id)
             {
                 if(parameter.equalsIgnoreCase("mail"))
                 {   
                     u.setEmail(update);
                     session.update(u);
                     break;
                 }
                 if(parameter.equalsIgnoreCase("phone_no"))
                 {   
                     u.setPhone_num(Integer.parseInt(update));
                     session.update(u);
                     break;
                 }
                 if(parameter.equalsIgnoreCase("password"))
                 {   
                     u.setPassword(update);
                     session.update(u);
                     break;
                 }
             }
         }
        
        session.flush();
        tx.commit();
        //return id;
    }

在控制器中

public void updateUser(@RequestBody int id,String parameter, String updateToBe)
    {

        service.updateUser(id,parameter, updateToBe);
        
    }
    

【问题讨论】:

  • 您的请求正文定义为int id,这似乎是错误的。将所有参数添加到 ParametersDTO 之类的内容中,并将 updateUser 签名更改为 updateUser(@RequestBody ParametersDTO parameteters)
  • 我从未使用过ParametersDTO。还有其他方法吗?不过感谢您的回复。
  • 不,我不这么认为。看这里的例子:baeldung.com/spring-request-response-body

标签: java spring-boot postman


【解决方案1】:

创建一个包含所有字段的实体或 DTO 例如。

class User{
int id,
String parameter, 
String updateToBe

// getters and setters

}


public void updateUser(@RequestBody User user)
    {

        service.updateUser(user);
        
    }

从 Postman 发送 JSON 对象

【讨论】:

  • 但是我已经有一个用户实体。这里我传递的参数是用户是否要更改邮件、电话号码或密码,updateToBe 是一个新更新的值。
  • 阅读这可能就是您要查找的内容 [link]baeldung.com/spring-requestparam-vs-pathvariable
猜你喜欢
  • 2014-10-24
  • 2020-07-11
  • 1970-01-01
  • 2017-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-17
  • 2019-04-23
相关资源
最近更新 更多