使用json格式自定義參數構造簽名回調參數

官網給了兩種方式:json格式與表單參數格式.

 

{
    "callbackUrl" : "http://abc.com/test.php",
    "callbackHost" : "oss-cn-hangzhou.aliyuncs.com",
    "callbackBody" : "{\"bucket\":${mimeType}, \"object\":${object},\"size\":${size},\"mimeType\":${mimeType},\"my_var\":${x:my_var}}",
    "callbackBodyType" : "application/json"
}
{
    "callbackUrl" : "http://abc.com/test.php",
    "callbackBody" : "bucket=${bucket}&object=${object}&etag=${etag}&size=${size}&mimeType=${mimeType}&my_var=${x:my_var}"
}

爲了後續接口參數更容易維護因此採用json格式.

踩坑開始:

1.官網給的json格式:

"callbackBody" : "{\"bucket\":${mimeType}, \"object\":${object},\"size\":${size},\"mimeType\":${mimeType},\"my_var\":${x:my_var}}"

 $符號前後是沒有''的,這不太像是標準的json.......

2.官網說,自定義參數必須爲 x:yyyy格式的,必須以 "x:開頭",所以json格式化時採用了fastjson,但回調時spring自動將參數映射到bean上採用的jackson,所以接受參數的類屬性別名設置時使用的註解不對,

接受參數使用註解,

//  @JsonProperty(value = "x:originalFileName")
  private String originalFileName;

請求參數註解:

//  @JSONField(name = "x:originalFileName")
  private String originalFileName;

這樣纔回調正常.至於爲什麼註解去掉了,參考踩坑點3

3.今天把註解註釋掉了,尼瑪,完全正常,真是多次一舉

官網給的json格式中,callbackbody中 有這麼一個參數,"my_var\":${x:my_var}},他的屬性名沒有使用x:yyy這種格式,試了下,成功了!!!

關於這點,官網還是很亂的,兩個鏈接,說的不一樣的東西,一頓懵逼,自己體會吧.

https://help.aliyun.com/document_detail/50092.html?spm=a2c4g.11186623.2.13.16885cdfPI3cdj#concept-tj5-cv3-wdb

https://help.aliyun.com/document_detail/31989.html?spm=a2c4g.11186623.6.1483.711fb81ejhrtmZ

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章