在英特尔XDK中为Parse.com REST API或DreamFactory创建Web服务

时间:2014-07-21 00:44:24

标签: parse-platform intel-xdk

有没有人成功在XDK中为DreamFactory或Parse.com REST API创建新的Web服务?我能够通过curl从两个命令行获得响应,所以看起来它应该是可行的。到目前为止,我还没能使其中任何一个工作。

作为参考,这些是curl api调用:

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

$ curl -X POST http://ec2-[my server].compute.amazonaws.com:80/rest/user/session -H "X-DreamFactory-Application-Name: testapp" -d '{"email": "test@example.com", "password" : "[my password]"}'


(这会返回一个包含会话ID的大型JSON字符串,在下面使用)

$ curl -X GET http://ec2-[my server].compute.amazonaws.com:80/rest/testapp/roles -H "X-    DreamFactory-Application-Name: testapp" -H "X-DreamFactory-Session-Token: [my session]"
{"record":[{"id":1,"rolename":"Agent","description":"agent"},{"id":2,"rolename":"Client","description":"client"},{"id":3,"rolename":"Admin","description":"administrator"}]}


Parse.com

$ curl -X GET   -H "X-Parse-Application-Id: [my appid]"   -H "X-Parse-REST-API-Key: [my api key]"   https://api.parse.com/1/classes/TestObject
{"results":[{"foo":"bar","createdAt":"2014-07-19T22:07:52.874Z","updatedAt":"2014-07-19T22:07:52.874Z","objectId":"jSpF1RrOy4"}]}


我是JSON的新手,所以我怀疑我的一个或多个apiconfig.json,testapp.json或testapp.js文件出了问题。我已经对它们进行了充分的实验,现在它们已经变得混乱,但如果有帮助我可以发布它们。我希望有人为这些API或类似API之一成功创建XDK Web服务,可以提供一些指导。

谢谢!

3 个答案:

答案 0 :(得分:2)

从XDK支持工程师的HTML5开发论坛(http://go.shr.lc/1nr6fsT)回复单独的问题复制:

对于需要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"
                  }
               ]
            }
         ]
      }
   ]
}

答案 1 :(得分:0)

我不相信您的问题与Intel-XDK有关,但发布一些代码可能有助于我们解决问题或提供一些指导。虽然,如果您更改了项目中的某些配置文件,那么您可能会遇到一些问题。

AJAX(异步JavaScript和XML)可用于与项目中的REST Web服务进行交互。 Stack Overflow或Google上有大量示例可帮助您向之前描述的两个Web服务发出HTTP请求。

答案 2 :(得分:0)

对于DreamFactory,请参阅here

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