2016-11-24 50 views
0

我有一個在後端使用一些外部服務的asp.net應用程序的WebAPI,是有辦法自定義標題添加到所有出站請求(如休息或肥皂reqests) ?我可以創建一個過濾器,但它只攔截我的webapi客戶端的傳入請求和響應。您的問題ASP.net的WebAPI添加標題,所有出站請求

+1

一種方法是創建在HttpClient的包裝和使用該包裝打電話給你的第三方服務。在進行調用之前,您可以在封裝器中配置頭文件。只是一個想法,可能會有更優雅的解決方案。 – Developer

+0

請在下面的鏈接中找到答案; http://stackoverflow.com/a/22998513/705947 –

+0

謝謝,但我不需要添加標頭肥皂請求,但所有的http請求,而不改變每個客戶端組件在web應用程序 – user2100125

回答

0

兩個可能的解決方案:

  1. 創建你的http請求模塊(HttpClient的,HttpWebRequest的,...),簽署組件和對GAC然後註冊自定義版本,一個例子是可用https://stackoverflow.com/a/9266821/5270073

這種方法的缺點是,每當開發人員使用新模塊來使用外部服務時,都需要實現並註冊該自定義新模塊。

  1. 在您的基礎設施(Kong,Tyk,...)中添加一個API網關或代理,在此網關中註冊您的外部服務並從API網關使用外部服務。您可以輕鬆地將自定義標頭添加到使用此網絡組件的所有請求。

流程:

api.mydomain.com => externalservice.com 

更改:

api.mydomain.com => apigateway.mydomain.com/externalservice => externalservice.com 

個人而言,我更喜歡,因爲第二個選項:

  • 您可以控制消費服務;
  • 您可以將自定義標頭添加到其他應用程序或服務器;
  • 此方法符合DevOps實踐。在香港

自定義請求:https://getkong.org/plugins/request-transformer/

上TYK自定義請求:https://tyk.io/tyk-documentation/transform-traffic/request-method-transform/

相關問題