【转】ABP源码分析三十七:ABP.Web.Api Script Proxy API
ABP提供Script Proxy WebApi為所有的Dynamic WebApi生成訪問這些WebApi的JQuery代理,AngularJs代理以及TypeScriptor代理。這些個代理就是javascript腳本,通過這些代理可以簡單的訪問Dynamic webApi。
如下實例演示一個最基本的應用場景。首先通過Script Proxy WebApi獲取所有Dynamic WebApi的angular?代理。
?
假設你有一個ApplicationService如下,并且你為該ApplicationService創建了動態的WebApi
?
那么在ABP框架下,你可以使用如下簡單的Js完成WebApi的調用。
?
PlainTextFormatter:自定義的針對"text/plain"的媒體格式化器。服務器端通過WebApi返回給客戶端的Javascript腳本時所使用的媒體格式化器。
?
IScriptProxyGenerator:定義了一個generate方法用于生成訪問Dynamic WebApi的代理,所謂代理就是一段js代碼。
JQueryProxyGenerator:根據DynamicApiControllerInfo生成訪問Dynamic WebApi方法的JQuery代理。
JQueryActionScriptGenerator:根據DynamicApiControllerInfo,DynamicApiActionInfo生成訪問這個Dynamic WebApi 的特定Action方法的JQuery代理。
AngularProxyGenerator:根據DynamicApiControllerInfo生成訪問Dynamic WebApi方法的AngularJs代理。
AngularActionScriptWriter:根據DynamicApiControllerInfo,DynamicApiActionInfo生成訪問這個Dynamic WebApi 的特定Action方法的AngularJs代理。
?
TypeScriptController: 這個API為系統中所有的DynamicApiControllerInfo生成TypeScriptor代理。返回給客戶端的結果 是一段TypeScriptor腳本。由于TypeScriptor無法在瀏覽器中直接運行。所以作者此處的用意實在不明白。 個人猜測這些TypeScriptor腳本是為更近一步開發所準備的。
?
?
AbpServiceProxiesController:這個就是向外提供JQuery代理,AngularJs代理腳本的webAPI了。其有兩個方法:get方法根據具體的某個controllerName返回該controller的代理。 getALL則返回所有DynamicAPI的代理。
?
ScriptProxyManager:單例對象,封裝了一個字典對象IDictionary<string, ScriptInfo> CachedScripts用于緩存生成的JQuery代理,AngularJs代理腳本。AbpServiceProxiesController通過調用ScriptProxyManager的方法生成代理腳本。
?
?
?
?
?
返回ABP源碼分析系列文章目錄
總結
以上是生活随笔為你收集整理的【转】ABP源码分析三十七:ABP.Web.Api Script Proxy API的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 网申信用卡都要面签吗
- 下一篇: 【转】使用FiddlerCore来测试W