一開始是這個樣子的
@ApiOperation(value = "刪除用戶", notes = "根據用戶名刪除指定用戶", httpMethod = "POST")
@ApiImplicitParam(
name = "username", value = "用戶的用戶名", required = true, dataType="String"
)
@ApiResponses({
//code重複的情況下,第一個聲明的生效。
@ApiResponse(code = 200,message = "刪除成功" ),
@ApiResponse(code = 202,message = "刪除失敗,用戶不存在")
})
@ApiVersion(group = ApiVersionConstant.FAP_APP100)
@RequestMapping(value = "delete", method = RequestMethod.POST)
public Boolean deleteUser(@RequestBody UserDemo user,HttpServletResponse response) {
這樣寫的結果會是下面這個樣子,導致出現兩個參數,一個實體類傳參類型是json格式,一個是註解中寫的屬性。
而且只能在實體類的json字符串中填寫要傳的值,在下面的屬性輸入框輸入值,傳到後臺是null。因爲後臺使用的是@RequestBody註解,只接收json字符串
而且頁面上面還會報一個錯,其實就是你的參數是一個實體類,而你的dateType寫的是String。
在@RequestBody前面添加一個註解,@APIIgnore
public Boolean deleteUser(@ApiIgnore @RequestBody UserDemo user,HttpServletResponse response)
頁面變成了這個亞子,只剩下這個屬性參數,但是……這樣你輸入一個值,點擊發送請求是發不過去的,因爲後臺是@RequestBody註解的實體類,只接收json類型的字符串,這樣發出去的一個鍵值對或者只是一個你輸入的字符串,而不是json類型,
繼續改,在參數屬性註解裏添加一個paramType屬性,再把dateType屬性刪了(刪了就不報錯了)
@ApiImplicitParam(
name = "username", value = "用戶的用戶名-String", required = true, paramType="body"
)
結果就是,可以輸入json字符串,也不報錯。但是就有一點問題,就是不知道參數的類型,我覺得可以在參數描述那裏的value裏面加上一個參數類型。就像這樣。
如果本文幫助到了你,別忘了點贊加關注哦
你點的每個贊,我都認真當成了喜歡