Restivus вернуть HTML-шаблон?
Я пытаюсь сделать 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-шаблоны...
Кто-то знает решение или уже есть эта проблема?
Спасибо за ваши будущие ответы:)
2 ответа
Проблема в том, что вы используете набор параметров API, которые не рекомендуется использовать в документации. Проверьте комментарий прямо над кодом здесь. Если вы хотите скопировать и вставить некоторый код, чтобы начать, вы можете использовать код из примера быстрого запуска. Все, что вам нужно, это получить API, который вы ищете:
var Api = new Restivus({
useDefaultAuth: true,
version: v1
});
Api.addCollection('coupons');
Вы должны установить этот заголовок: Content-Type: 'application/x-www-form-urlencoded;charset=UTF-8' в вашем запросе