總體說明
feign消費服務時,以GET方式請求的條件:
如果想讓服務消費者采用GET方式調用服務提供者,那麼需要:
1. 服務消費者這邊feign調用時,在所有參數前加上@RequestParam注解。
2. 服務消費者這邊feign調用時,指明為GET方式(注:如果不指明method,那麼在條件1滿足的情況下,采用的是預設的GET方式)。
注:這裡條件1和條件2,是“且”的關系(都滿足時,才為GET)。
feign消費服務時,以POST方式請求的條件:
如果想讓服務消費者采用POST方式調用服務提供者,那麼隻需要:
1. 服務消費者這邊feign調用時,在所有參數前加上@RequestParam注解,并指明feign消費服務的方式為POST。
2. 服務消費者這邊feign調用時,有且隻有一個參數前為@RequestBody或什麼也沒有(如果有多個參數,那麼其餘參數前必須有@RequestParam,且最多隻能有一個@RequestBody)。
注:這裡條件1和條件2,是“或”的關系(當至少一個滿足時,即為POST)。
注:在服務消費者中,使用feign消費服務時,如果參數前什麼也不寫,那麼預設是由@RequestBody指明的。
注:@RequestBody注解的參數,需要POST方式才能傳遞資料。
注:在服務提供者的Controller中,
如果要接收(服務消費中傳過來的)被@RequestBody指明的參數,那麼對應方法的對應參數前一定要有@RequestBody;
(如果沒有的話,收到的參數值就為null;如果寫成@RequestParam的話,那麼feign調用會失敗)。
如果要接收(服務消費中傳過來的)被@RequestParam指明的參數,那麼可以寫@RequestParam,也可以不寫(當服務提供者中對應的參數名字與服務消費者傳過來的參數名字一緻時,可以不寫,不一緻時,需要寫)
---------------------
原文:https://blog.csdn.net/justry_deng/article/details/80785973