我必须在这里遗漏一些显而易见的东西,但我不能为我的生活找出什么。我已经像这样配置了Restivus:
Projects = new Mongo.Collection('projects');
Skills = new Mongo.Collection('skills');
Causes = new Mongo.Collection('causes');
Meteor.startup(() => {
let 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'
});
// Add core models
Api.addCollection(Skills);
Api.addCollection(Causes);
Api.addCollection(Projects);
Api.addRoute('custom', {
get: function () {
return {
status: 'success',
data: 'get something different'
};
}
});
});
这基本上是从文档中复制粘贴的。问题在于,当尝试访问任何自动生成的端点或自定义端点custom
时,我得到的只是Meteor应用程序本身的HTML(就像我导航到根URL一样)该应用程序)。
就好像Restivus根本就没有运行一样,但是上面代码块末尾的console.log
验证它至少是在运行。我做错了什么?
答案 0 :(得分:1)
正如我所料,这显然是显而易见的。我要离开这里以防其他人犯同样的错误。
关键是配置中的这一行:
version: 'v1'
这意味着您需要将/v1/
附加到API路径,以便调用本身具有格式(例如):
mydomain.com/api/v1/myresource