#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’ в вашем запросе