使用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

 

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