博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ABP源码分析三十七:ABP.Web.Api Script Proxy API
阅读量:7109 次
发布时间:2019-06-28

本文共 1364 字,大约阅读时间需要 4 分钟。

ABP提供Script Proxy WebApi为所有的Dynamic WebApi生成访问这些WebApi的JQuery代理,AngularJs代理以及TypeScriptor代理。这些个代理就是javascript脚本,通过这些代理可以简单的访问Dynamic webApi。

如下实例演示一个最基本的应用场景。首先通过Script Proxy WebApi获取所有Dynamic WebApiangular 代理。

 

假设你有一个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的方法生成代理脚本。

 

 

 

 

 

返回

转载地址:http://hsvhl.baihongyu.com/

你可能感兴趣的文章
【职场Tips】20051106《对话李开复》心得笔记
查看>>
3个著名加密算法(MD5、RSA、DES)的解析
查看>>
免费资源:Polaris UI套件 + Linecons图标集(AI, PDF, PNG, PSD, SVG)
查看>>
纯净版CentOS64位安装LAMP的时候出现的问题总结
查看>>
Login failed for user 'IIS APPPOOL\ASP.NET v4.0'.
查看>>
How to find error message from OMS repository
查看>>
Heredoc技术<<<
查看>>
(转载) eclipse 找不到Courier New 样式
查看>>
大丈夫不可一日无权啊!——项目经理的误区(2)(转)
查看>>
HDU2309:ICPC Score Totalizer Software
查看>>
编译Zabbix
查看>>
Nginx源码分析-定时器的实现及使用
查看>>
JAVA的StringBuffer类
查看>>
搜索账号建设内网wiki
查看>>
Java3D实例应用-载入VRML模型
查看>>
XtremSF和XtremSW简介
查看>>
JAVA泛型(代码级解释)
查看>>
使用jQuery Mobile和Phone Gap开发Android应用程序
查看>>
Socket编程 (异步通讯,解决Udp丢包) - Part4
查看>>
ML EX3
查看>>