Postman傳遞對象參數(包含有集合對象)
項目場景:
postman通常需要傳遞各式各樣的參數,這樣的話,進行寫參數比較頭疼,不知怎麼進行傳參。
解決方案:
可以考慮將參數對象寫成json字符串的樣式,然後將將字符串轉換成json對象
實體類:
import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import org.apache.ibatis.annotations.Param; import org.hibernate.validator.constraints.Length; import org.springframework.validation.annotation.Validated; import javax.persistence.Column; import javax.persistence.Id; import javax.persistence.Table; import javax.persistence.Transient; import javax.validation.Valid; import javax.validation.constraints.Digits; import javax.validation.constraints.NotNull; import java.io.Serializable; import java.math.BigDecimal; import java.util.Date; import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor @Table(name = "ssm_funds_main") public class FunsCjyModel implements Serializable { private static final long serialVersionUID = 1L; /** * 主表id */ @Id // @NotNull(message = "id不能為空") @Length(max = 32,message = "主表id長度不能超過32位") @Column(name = "BI_RS_ID") private String biRsId; /** * 所屬培訓班 */ @NotNull(message = "所屬培訓班不能為空") @Length(max = 32,message = "培訓班長度不能超過32位") @Column(name = "TERM_NAME") private String termName; /** * 發票購買方 */ @NotNull(message = "發票購買方不能為空") @Length(max = 32,message = "發票購買方長度不能超過32位") @Column(name = "BUYER") private String buyer; /** * 發票銷售方 */ @NotNull(message = "發票銷售方不能為空") @Length(max = 32,message = "發票銷售方長度不能超過32位") @Column(name = "SALLER") private String saller; /** * 發票編號 */ @Length(max = 32,message = "發票編號長度不能超過32位") private String billNo; /** * 開票日期 */ private Date billDate; /** * 票面金額 */ @Digits(integer = 8,fraction = 2,message = "票面金額整數上限為8位,小數點上限為2位") private BigDecimal billSum; /** * 復印件路徑 */ @Length(max = 100,message = "復印件路徑長度不能超過100位") private String picPath; /** * 文件擴展名稱 */ @Length(max = 10,message = "文件擴展名稱長度不能超過100位") private String picFileExt; /** * 創建人 */ @Length(max = 32,message = "創建人id長度不能超過32位") private String createId; /** * 創建時間 */ private Date createDate; /** * 修改人 */ @Length(max = 32,message = "修改人id長度不能超過32位") private String modifyId; /** * 修改時間 */ private Date modifyDate; /** * 從表集合 */ @Transient @Valid private List<DetailCjyModel> list; }
參數樣式:
{ "biRsId":"", "termName":"實訓", "buyer":"學生", "saller":"學校", "billNo":"20210722", "billSum":"900.00", "createId":"CJY", "list":[ { "rsId":"", "itemName":"語文", "itemSpec":"私人", "itemUnit":"元", "qty":"10.00", "price":"30.00", "subSum":"300.00", "taxPercent":"0.1", "taxAtm":"30.0" }, { "rsId":"", "itemName":"數學", "itemSpec":"集體", "itemUnit":"元", "qty":"20.00", "price":"30.00", "subSum":"600.00", "taxPercent":"0.1", "taxAtm":"60.0" } ] }
控制層代碼:
@RequestMapping("/insertFunsDetailTwo") @ResponseBody public ResultMap insertFunsDetailTwo(String dataStr,@RequestParam (value = "file",required = false) MultipartFile file){ JSONObject dataStrMap = JSONObject.parseObject(dataStr); FunsCjyModel funsCjyModel = new FunsCjyModel(); funsCjyModel.setTermName((String)dataStrMap.get("termName")); funsCjyModel.setBuyer((String)dataStrMap.get("buyer")); funsCjyModel.setSaller((String)dataStrMap.get("saller")); funsCjyModel.setBillNo((String)dataStrMap.get("billNo")); funsCjyModel.setBillSum(funsModelCjyServiceImpl.stringBigeDecimal((String)dataStrMap.get("billSum"))); funsCjyModel.setCreateId((String)dataStrMap.get("createId")); String list1 = JSON.toJSONString(dataStrMap.get("list")); List<DetailCjyModel> list = JSONArray.parseArray(list1,DetailCjyModel.class); funsCjyModel.setList(list); return funsModelCjyService.insertFunsAndDetail(funsCjyModel,file); }
這樣的話可以用postman的form-data傳文件和集合對象的參數
補充:Postman測試接口傳遞對象參數
url:
使用的是post方式請求
在Headers設置:
在Body寫入對象信息,主要紅線的地方:
到此這篇關於Postman傳遞對象參數(包含有集合對象)的文章就介紹到這瞭,更多相關Postman傳遞對象參數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- 如何解決@NotBlank不生效的問題
- 解決get請求入參@NotNull驗證不生效問題
- SpringBoot學習篇之@Valid與@Validated的區別
- springboot 參數格式校驗操作
- ConstraintValidator類如何實現自定義註解校驗前端傳參