【问题标题】:Explanation of Ext.direct APIExt.direct API 说明
【发布时间】:2014-01-30 07:19:54
【问题描述】:

我正在尝试掌握 Ext.direct。在官方page上有这个API的描述:

Ext Direct 堆栈的 API 组件的目的是为 Ext Direct 输出方法配置以创建客户端存根。通过生成这些代理方法,我们可以像调用客户端方法一样无缝调用服务器端方法,而无需担心客户端和服务器端之间的交互。

我只是不太明白 ...输出用于 Ext Direct 的方法配置以创建客户端存根的含义。有人愿意在基层解释这意味着什么吗?

【问题讨论】:

标签: extjs sencha-touch sencha-touch-2


【解决方案1】:

如果您查看以下example 中包含的api.php 资源的输出,这将更有意义。

请注意,这是作为<script/> 标签加载到页面上的,即:

<script type="text/javascript" src="php/api.php"></script>

当您打开 src link 时,您会看到以下 JavaScript 正在由服务器端 PHP 生成(请参阅下面的 javascript 代码块)。

换句话说,PHP 正在...输出 Ext Direct 的方法配置以创建客户端(即 JavaScript)存根。

现在,如果您想理解这一点,您应该问的下一个问题是:为什么要使用服务器端 PHP(或其他选择的语言)生成客户端 JavaScript?

Ext.ns("Ext.app");
Ext.app.REMOTING_API={
    "url": "php\/router.php",
    "type": "remoting",
    "actions": {
        "TestAction": [{
                "name": "doEcho",
                "len": 1
            }, {
                "name": "multiply",
                "len": 1
            }, {
                "name": "getTree",
                "len": 1
            }, {
                "name": "getGrid",
                "len": 1
            }, {
                "name": "showDetails",
                "params": [
                    "firstName",
                    "lastName",
                    "age"
                ]
            }],
        "Profile": [{
                "name": "getBasicInfo",
                "len": 2
            }, {
                "name": "getPhoneInfo",
                "len": 1
            }, {
                "name": "getLocationInfo",
                "len": 1
            }, {
                "name": "updateBasicInfo",
                "len": 0,
                "formHandler": true
            }]
    }
};

这似乎在模仿WSDL 的工作方式,因为它可以提供服务描述并列出所有可用于查询的选项。换句话说:Ext.Direct API 是从 SOAP 中获取一个概念并将其应用于 Javascript 设置

后端包含 API,因此这是生成包含所有方法名称和签名的服务定义的最简单位置。一旦提供了 Ext.Direct API 方法存根(在后端),前端的 Ext.Direct 库将进行管道并将其转化为实际功能可以在 JavaScript 中查询和使用。与使用 WSDL 自动生成 SOAP 代理类(在 PHP/C#Java 中)的方式非常相似。

就我个人而言,我认为这对我来说有点过于空灵了。大多数 API 都非常简单明了,尝试实现类似于 WSDL 的东西实际上比直接与它对话要困难得多。

【讨论】:

  • 谢谢。我想我现在明白了。如果我错了,请纠正我:服务器堆栈的 api 组件为客户端存根生成方法配置。然后客户端的 ext.direct 会根据这些配置自动生成存根。
  • 正确,我将进一步更新问题以明确这一点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-24
  • 2016-12-13
  • 2015-02-28
  • 1970-01-01
相关资源
最近更新 更多