0

我正在尝试为我的 METEOR 应用程序制作一个 api。我查看了https://atmospherejs.com/simple/resthttps://atmospherejs.com/xcv58/collection-api但这没有用。现在我在restivus:https ://atmospherejs.com/nimble/restivus

我遇到的问题是,当我尝试调用 api 时,它总是返回我的 HTML 模板,否则我需要一个 json 响应......

这是我的 api 代码 =>

在 server.js 中:

// Global API configuration
    var Api = new Restivus({
        apiPath: 'api/',
        auth: {
          token: 'auth.apiKey',
          user: function () {
            return {
              userId: this.request.headers['user-id'],
              token: this.request.headers['login-token']
            };
          }
        },
        defaultHeaders: {
          'Content-Type': 'application/json'
        },
        onLoggedIn: function () {
          console.log(this.user.username + ' (' + this.userId + ') logged in');
        },
        onLoggedOut: function () {
          console.log(this.user.username + ' (' + this.userId + ') logged out');
        },
        prettyJson: true,
        useDefaultAuth: true,
        version: 'v1'
    });

    Api.addCollection('coupons');

当我尝试使用一些用户名和密码数据在http://localhost:3000/api/v1/login/上进行 curl 时,它会返回我所有的 html 模板...

有人知道解决方案或已经有这个问题吗?

感谢您未来的回答:)

4

2 回答 2

0

问题是您正在使用文档警告不要使用的 API 选项集。在此处检查代码正上方的注释。如果您想复制并粘贴一些代码以开始使用,您可以使用快速入门示例中的代码。您只需要以下内容即可获得您正在寻找的 API:

var Api = new Restivus({
  useDefaultAuth: true,
  version: v1
});

Api.addCollection('coupons');
于 2016-10-06T15:49:35.370 回答
0

您应该在请求中设置此标头: Content-Type: 'application/x-www-form-urlencoded;charset=UTF-8'

于 2018-09-11T08:36:32.253 回答