有没有办法使用一个post方法Spring Boot发布多个请求

时间:2018-06-11 09:28:21

标签: spring-boot post

例如,我有一个用户表和一个订单表,我想为同一个用户添加多个订单的详细信息,但只使用一次Post方法。 有没有办法这样做?

以下是订单控制器:

@RequestMapping(method = RequestMethod.POST,value = "/users/{userId}/orders")
public List<Orders> addOrder(@RequestBody Orders order,@PathVariable BigInteger userId) {
    order.setUser(new User(userId," "," "," "));
    ordersService.addOrder(order);
}

订单实体: -

@Entity
public class Orders {
    @Id
    @GeneratedValue(strategy=GenerationType.AUTO)
    private BigInteger id;
    private String date;

    @ManyToOne
    private User user;

    public User getUser() {
        return user;
    }

    public void setUser(User user) {
        this.user = user;
    }

    public Orders(){}
    public Orders(BigInteger id, String date,BigInteger userId) {
        super();
        this.id = id;
        this.date = date;
        this.user=new User(userId," "," "," ");
    }

    public BigInteger getId() {
        return id;
    }

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


    public String getDate() {
        return date;
    }

    public void setDate(String date) {
        this.date = date;
    }

}

我想要的是使用订单控制器的相同post方法,为单个用户标识发布多个订单

1 个答案:

答案 0 :(得分:0)

肯定是的。假设您想在单个请求中发布多个订单。请考虑每个订单都包含orderNameorderNumber等属性。所以你可以像

那样做

Json请求

{  
   "orders":[  
      {  
         "orderName":"order1",
         "orderNumber":"Ref-1"
      },
      {  
         "orderName":"order2",
         "orderNumber":"Ref-2"
      }
   ]
}

控制器方法

@RequestMapping(method = RequestMethod.POST,value = "/users/{userId}/orders", consumes = MediaType.APPLICATION_JSON_VALUE)
    public List<Orders> addOrder(@RequestBody List<Order> orders,@PathVariable BigInteger userId) {
       //do whatever you want
    }

Order应该是一个带有必需参数/字段的简单pojo。