Parse platform 在Intel XDK for Parse.com REST API或DreamFactory中创建Web服务

Parse platform 在Intel XDK for Parse.com REST API或DreamFactory中创建Web服务,parse-platform,intel-xdk,Parse Platform,Intel Xdk,有没有人成功地在XDK中为DreamFactory或Parse.com REST API创建了新的web服务?我可以通过curl从命令行中得到响应,所以看起来应该是可行的。到目前为止,我还没能使这两种方法都起作用 以下是curl api调用供参考: DreamFactory(首先需要会话开启器调用): (返回一个包含会话ID的大JSON字符串,如下所示) Parse.com: 我是JSON新手,所以我怀疑我的一个或多个apiconfig.JSON、testapp.JSON或testapp.j

有没有人成功地在XDK中为DreamFactory或Parse.com REST API创建了新的web服务?我可以通过curl从命令行中得到响应,所以看起来应该是可行的。到目前为止,我还没能使这两种方法都起作用

以下是curl api调用供参考:

DreamFactory(首先需要会话开启器调用):


(返回一个包含会话ID的大JSON字符串,如下所示)


Parse.com:


我是JSON新手,所以我怀疑我的一个或多个apiconfig.JSON、testapp.JSON或testapp.js文件中有问题。我已经用它们做了足够多的实验,现在它们有点乱七八糟,但是如果有帮助的话,我可以发布它们。我希望已经成功为这些API或类似API创建了XDKWeb服务的人能够提供一些指导


谢谢

我不认为您的问题与英特尔XDK有关,但发布一些代码可能会帮助我们解决问题或提供一些指导。但是,如果更改了项目中的一些配置文件,则可能会遇到一些问题

AJAX(异步JavaScript和XML)可用于在项目中与RESTWeb服务交互。关于Stack Overflow或Google,有很多例子可以帮助您向前面描述的两个web服务发出HTTP请求。

有关DreamFactory,请参阅


如果您在本地MySQL数据库中有一个名为roles的表,那么GET的URL应该是/rest/db/roles。

复制自XDK支持工程师对HTML5开发论坛()上一个单独问题的回复:

对于URL字符串中需要两个键的API,请将以下字段添加到apiconfig.json文件:

"auth": "key",
"keyParam": "apiKey",
"signature": "apiSecret"
键值可以作为.js文件中的credentials.apiKey和credentials.apiSecret访问

对于通过标头需要2个键的API。将所需的标题放在变量key_info中,并在.js文件中使用以下命令:

return $.ajax({url: url, 
               data: key_info
              });
在您发布的代码中,apiconfig.json文件中列出的服务名称是“parsedbtest”,而文件名是“parsetestdb.js”和“parsetestdb.json”。 通过将apiconfig条目更改为:

{
    "parsetestdb": {
        "name": "test db parse.com",
        "dashboardURL": "https://www.parse.com/docs/rest",
        "auth": "key",
        "keyParam": "apiKey",
        "signature": "apiSecret"
    }
}
那么您的parsetestdb.js将是:

(function (credentials) {
  var exports = {};
  exports.TestObject = function (params) {
    var url = 'https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:javascript-key='+ credentials.apiKey +'@api.parse.com/1/classes/TestObject'; //Or credentials.apiSecret.
    return $.ajax({url: url});
  };
  return exports;
})
还可以使用params.objectId和params.foo输入其他参数

此外,上面使用的方法名是“TestObject”。这应该与.json文件中的方法名匹配(因此,没有空格)。因此,parsetestdb.json将是:

{
   "endpoints":[
      {
         "name":"Methods",
         "methods":[
            {
               "MethodName":"TestObject",
               "HTTPMethod":"GET",
               "URI":"TestObject",
               "RequiresOAuth":"N",
               "parameters":[
                   {
                     "Name":"objectId",
                     "Required":"N",
                     "Location":"query",
                     "Type":"string"
                  },
                  {
                     "Name":"foo",
                     "Required":"N",
                     "Location":"query",
                     "Type":"string"
                  }
               ]
            }
         ]
      }
   ]
}

你应该提供不起作用的代码,否则这是离题的。嗨-谢谢你的评论和回复(很抱歉延迟回复,我正在旅行)。一位XDK支持工程师在英特尔HTML5开发论坛的另一篇帖子中回答了这个问题:抱歉,我误读了你的问题,以为你对DreamFactory的cURL命令有问题。无论如何,希望有人会发现这些cURL示例很有用……这里有两个问题:如何知道api.config文件的apiKey和/或apiSecret是什么?在密钥部分的解析中没有明确表示“机密”的内容,它只是一个完整的lotta密钥,我不知道应该使用哪个密钥作为机密。第二,它说将2个必需的头放在一个名为key_info的变量中,这应该是一个对象还是一个数组?
{
    "parsetestdb": {
        "name": "test db parse.com",
        "dashboardURL": "https://www.parse.com/docs/rest",
        "auth": "key",
        "keyParam": "apiKey",
        "signature": "apiSecret"
    }
}
(function (credentials) {
  var exports = {};
  exports.TestObject = function (params) {
    var url = 'https://XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX:javascript-key='+ credentials.apiKey +'@api.parse.com/1/classes/TestObject'; //Or credentials.apiSecret.
    return $.ajax({url: url});
  };
  return exports;
})
{
   "endpoints":[
      {
         "name":"Methods",
         "methods":[
            {
               "MethodName":"TestObject",
               "HTTPMethod":"GET",
               "URI":"TestObject",
               "RequiresOAuth":"N",
               "parameters":[
                   {
                     "Name":"objectId",
                     "Required":"N",
                     "Location":"query",
                     "Type":"string"
                  },
                  {
                     "Name":"foo",
                     "Required":"N",
                     "Location":"query",
                     "Type":"string"
                  }
               ]
            }
         ]
      }
   ]
}