小編給大家分享一下ASP.NET Core中如何實現(xiàn)接口代理轉發(fā),相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
我們擁有10年網頁設計和網站建設經驗,從網站策劃到網站制作,我們的網頁設計師為您提供的解決方案。為企業(yè)提供成都網站設計、成都網站建設、微信開發(fā)、小程序設計、成都做手機網站、H5場景定制、等業(yè)務。無論您有什么樣的網站設計或者設計方案要求,我們都將富于創(chuàng)造性的提供專業(yè)設計服務并滿足您的需求。前言
先講講本文的開發(fā)背景吧..
在如今前后端分離的大背景下,咱的客戶又有要求啦~
要前后端分離~ 然因為種種原因..沒辦法用用純前端的框架(其實是學習成本高,又沒錢請前端開發(fā)人員)...
所以最終決定了一種方案..
那就是采用MVC(只處理前端視圖層,單純是為了托管在.net core上)+Webapi的方式來實現(xiàn)前后端分離(講真,很奇葩)..
那么問題就隨之而來了.
現(xiàn)在主流的前端框架都是托管在nodejs上,是通過axios來訪問后端API,可以通過配置axios的代理配置(proxyTable)來實現(xiàn)跨域訪問.
那么我們的JS運行在MVC上,托管在.net core上..那咋辦呢?..沒有現(xiàn)成的轉發(fā)輪子..我們只有自己造了..
所以這就是本篇的背景 - -.~
正文
幸運的是ASP.NET Core 給我們提供了強大的中間件模式.
我們完全可以通過定義一個轉發(fā)中間件的形式來實現(xiàn)代理接口轉發(fā),流程如圖:
廢話不多說,我們來創(chuàng)建我們的中間件:
一.創(chuàng)建檢測約定URL的接口與實現(xiàn)
首先定義一個接口IUrlRewriter 用來檢測我們的URL是否有對應前綴,如果有,則產生新的URL地址:
這里我們定義接口是為了方便以后更好的更換注入類來實現(xiàn)快速更換檢測前綴的規(guī)則.
public interface IUrlRewriter { TaskRewriteUri(HttpContext context); }