Restivus возвращает HTML-шаблон?

#meteor #restivus

#meteor #restivus

Вопрос:

Я пытаюсь создать api для своего приложения METEOR. Я посмотрел на https://atmospherejs.com/simple/rest и https://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');
  

Когда я пытаюсь выполнить curl на http://localhost:3000/api/v1/login / с некоторыми данными имени пользователя и пароля он возвращает мне весь мой HTML-шаблон…

Кто-нибудь знает решение или уже имеет эту проблему?

Спасибо за ваши будущие ответы 🙂

Ответ №1:

Проблема в том, что вы используете набор параметров API, которые документы предупреждают об использовании. Проверьте комментарий непосредственно над кодом здесь. Если вы хотите скопировать и вставить некоторый код, чтобы начать работу, вы можете использовать код из примера быстрого запуска. Все, что вам нужно, это следующее, чтобы получить API, который вы ищете:

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

Api.addCollection('coupons');
  

Ответ №2:

Вы должны установить этот заголовок: Content-Type: ‘application / x-www-form-urlencoded;charset = UTF-8’ в вашем запросе