zoukankan      html  css  js  c++  java
  • ABP源码分析三十七:ABP.Web.Api Script Proxy API

    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的方法生成代理脚本。

     

     

     

     

     

    返回ABP源码分析系列文章目录

  • 相关阅读:
    c++中static的使用
    sublime3 ctl+b无效
    Maximum Subarray
    Find the Duplicate Number
    Reverse Linked List
    c++ primer 2 变量和基本类型
    Single Number II
    Roman to Integer & Integer to Roman
    Search Insert Position
    Unique Binary Search Trees II
  • 原文地址:https://www.cnblogs.com/1zhk/p/5428390.html
Copyright © 2011-2022 走看看