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相关推荐

  1. 【转】ABP源码分析三:ABP Module

    Abp是基于模块化设计思想进行构建的.开发人员可以将自定义的功能以模块(module)的形式集成到ABP中.具体的功能都可以设计成一个单独的Module.Abp底层框架提供便捷的方法集成每个Modul ...

  2. ABP源码分析四十七:ABP中的异常处理

    ABP源码分析四十七:ABP中的异常处理 参考文章: (1)ABP源码分析四十七:ABP中的异常处理 (2)https://www.cnblogs.com/1zhk/p/5538983.html (3 ...

  3. ABP源码分析三十四:ABP.Web.Mvc

    ABP.Web.Mvc模块主要完成两个任务: 第一,通过自定义的AbpController抽象基类封装ABP核心模块中的功能,以便利的方式提供给我们创建controller使用. 第二,一些常见的基础 ...

  4. 【转】ABP源码分析三十五:ABP中动态WebAPI原理解析

    动态WebAPI应该算是ABP中最Magic的功能之一了吧.开发人员无须定义继承自ApiController的类,只须重用Application Service中的类就可以对外提供WebAPI的功能, ...

  5. 【转】ABP源码分析三十四:ABP.Web.Mvc

    ABP.Web.Mvc模块主要完成两个任务: 第一,通过自定义的AbpController抽象基类封装ABP核心模块中的功能,以便利的方式提供给我们创建controller使用. 第二,一些常见的基础 ...

  6. 【转】ABP源码分析三十三:ABP.Web

    ABP.Web模块并不复杂,主要完成ABP系统的初始化和一些基础功能的实现. AbpWebApplication : 继承自ASP.Net的HttpApplication类,主要完成下面三件事 一,在 ...

  7. 【转】ABP源码分析三十一:ABP.AutoMapper

    这个模块封装了Automapper,使其更易于使用. 下图描述了改模块涉及的所有类之间的关系. AutoMapAttribute,AutoMapFromAttribute和AutoMapToAttri ...

  8. ABP源码分析三十:ABP.RedisCache

    ABP 通过StackExchange.Redis类库来操作Redis数据库. AbpRedisCacheModule:完成ABP.RedisCache模块的初始化(完成常规的依赖注入) AbpRed ...

  9. 【转】ABP源码分析四十七:ABP中的异常处理

    ABP 中异常处理的思路是很清晰的.一共五种类型的异常类. AbpInitializationException用于封装ABP初始化过程中出现的异常,只要抛出AbpInitializationExce ...

最新文章

  1. Spring、Spring Boot和TestNG测试指南 - @ActiveProfiles
  2. 最新Java面试题答案
  3. VS Resharper快捷键没了处理办法
  4. 路由cpu负载过高检查
  5. HTTP的请求与响应问题(没有了CSDN,暂时把这里当作论坛了)
  6. vue package.json 解析
  7. Tensorflow学习笔记:使用线性回归进行简单分类
  8. 基于javaweb+mysql的网上书店管理系统在线购书系统(前台、后台)
  9. 怎么制作GIF图片并添加文字
  10. linux支持hd610显卡吗,奔腾G4560核显怎么样且HD610相当于什么级别的显卡?
  11. 【转】Iphone4/4S验机教程
  12. ps人物素描及黑白上色
  13. 基于混合模型的语音降噪实践
  14. pptx---基础概念解释
  15. 弹性公网IP(EIP)
  16. 生成Solr增量索引配置xml
  17. 创建父需求子需求构建需求树_用pc构建DIY计算集群(超级计算机)
  18. 因计算机丢失msvcp120d.dll,计算机中缺失MSVCP120D.dll和MSVCR120D.dll怎么解决
  19. 遇到“word在试图打开文件时遇到错误”怎么办?
  20. 如何建设教育信息化评价指标体系?

热门文章

  1. HTTP和RPC的优缺点 1
  2. 打破牢笼,展望更高层次的世界
  3. 设计模式(二) 模板方法
  4. .NET面试题解析(04)-类型、方法与继承
  5. struts2 Eclipse 中集成strust2开发框架实例
  6. 使用json-lib进行Java和JSON之间的转换
  7. ORACLE EBS 多账套总结
  8. 请问如何让Dundas chart for asp.net控件产生的临时图片文件减少一些?
  9. ⼤规模⽆监督预训练语⾔模型与应⽤(上)
  10. 第七章 假设检验(3)