首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何通过Swagger或Ajax将数据发送到Presence连接器API?

如何通过Swagger或Ajax将数据发送到Presence连接器API?
EN

Stack Overflow用户
提问于 2016-02-05 09:27:59
回答 1查看 132关注 0票数 0

更新2016年2月19日-见下文

我正在构建一个用于近距离营销的混合移动应用程序(即一个将与信标交互的移动应用程序),我想使用Bluemix存在洞察服务来收集数据。问题是我无法通过SDK连接,因为它是一个混合应用程序,因此我需要使用连接器API。我已经做了一些尝试,我仍然得到了401的回应。

我试过Ajax调用设置基本Autentication标头

代码语言:javascript
复制
beforeSend: function (xhr) {
    xhr.setRequestHeader ("Authorization", "Basic " + btoa(username + ":" + password));
},

代码语言:javascript
复制
beforeSend: function (xhr) {
    xhr.setRequestHeader ("Authorization", "Basic <my encrypted token>");
},

代码语言:javascript
复制
headers: {
    "Authorization": "Basic " + btoa(USERNAME + ":" + PASSWORD)
  },

(同样使用加密的令牌,我不会重写它)。

然后我制作了一个Node.js服务器并安装了swagger(也就是说,我改变了策略):

代码语言:javascript
复制
router.post('/', function (req, res, next) {
    var json = req.body.json;
    var client = new Swagger({
        url: 'https://presenceinsights.ibmcloud.com/pi-swagger/the-connector-api',
        success: function () {
            console.log("success");
            console.log(JSON.stringify(client));
        },
        authorizations : {
            easyapi_basic: new Swagger.PasswordAuthorization('username', 'password')
        }

    });

    res.end();
});

这一次我取得了进展:

我可以成功地连接,但是我无法用数据发送JSON。由于没有访问swagger.json,我如何声明post请求的主体?有没有任何方法可以访问swagger.json的存在洞察力(这个东西将解决我的所有问题)?

更新后,在交换信息与存在洞察支持,我可以说,它是不可行的调用Swagger客户端。与混合应用程序一起使用该服务的唯一方法是构建代理Blumix运行时,它将将数据从混合应用程序转发到Presence服务。不允许使用外部服务器或通过在应用程序中调用API进行任何其他尝试,因为CORS策略不允许这样做。这对于连接器和管理来说是正确的。

我写这封信供将来参考。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-09 05:48:02

您要放置的端点URL需要是swagger定义或swagger规范的位置。一旦加载了API,就可以调用API了。注意,您正在初始化的swagger客户端将根据该定义动态创建函数。

现在,我仔细观察了一下,我确实看到了这个服务实际上是可用的:

https://presenceinsights.ibmcloud.com/pi-swagger/swagger.json

一旦您将其放入客户端,就可以在技术上对服务器进行调用。

但是,这项服务存在一个问题。swagger定义看起来无效,因此不可能使用javascript客户端。例如:

https://online.swagger.io/validator/debug?url=https://presenceinsights.ibmcloud.com/pi-swagger/swagger.json

显示出许多错误。我可能不正确地使用这个服务中的swagger.json (我确实嗅到了它),但是我指出--在构造客户机时使用定义--是这个库是如何工作的。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35220486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档