spring boot的@RequestParam和@RequestBody的區別

尊重原創:https://blog.csdn.net/u013306545/article/details/79071683

1、問題描述

      因爲項目是先後端分離,所以後臺使用的是spring boot,作成微服務,只暴露接口。接口設計風格爲restful的風格,在get請求下,後臺接收參數的註解爲RequestBody時會報錯;在post請求下,後臺接收參數的註解爲RequestParam時也會報錯。spring

2、問題緣由後端

     因爲spring的RequestParam註解接收的參數是來自於requestHeader中,即請求頭,也就是在url中,格式爲xxx?username=123&password=456,而RequestBody註解接收的參數則是來自於requestBody中,即請求體中。restful

3、解決方法app

      所以綜上所述,若是爲get請求時,後臺接收參數的註解應該爲RequestParam,若是爲post請求時,則後臺接收參數的註解就是爲RequestBody。附上兩個例子,截圖以下:前後端分離

      get請求微服務

  

post請求post

 

        另外,還有一種應用場景,接口規範爲resultful風格時,舉個例子:若是要獲取某個id下此條問題答案的查詢次數的話,則後臺就須要動態獲取參數,其註解爲@PathVariable,而且requestMapping中的value應爲value="/{id}/queryNum",截圖以下:url

相關文章
相關標籤/搜索