首先,我是web框架的新手。我們正在使用流星。 我有一個學生集合:設計一個休息API
Students = new Mongo.Collection('students');
目前,我們正在定義一個REST API爲:
// Maps to: /api/getAllStudents
Restivus.addRoute('getAllStudents', {authRequired: false}, {
get: function() {
var students = Students.find().fetch();
if (students.length > 0) {
return {status: 'success',count:students.length,data: students};
}
else {
return {
statusCode: 404,
body: {status: 'fail', message: 'Students not found'}
};
}}
});
};
現在,可以有另一個API getStudentByName作爲
// Maps to: /api/getStudentByName by name
Restivus.addRoute('getStudentByName', {authRequired: false}, {
get: function() {
var obj = {};
for(var key in this.queryParams){
var val = this.queryParams[key];
obj[key] = val;
}
var students = Students.find(obj).fetch();
if (student.length > 0) {
return {status: 'success',count: students.length, data: students};
}
return {
statusCode: 404,
body: {status: 'fail', message: 'Students not found'}
};
}
});
目前我訪問它們爲
http://localhost:3000/api/getAllStudents
和
http://localhost:3000/api/getStudentByName?name='abc'
我會有更多這樣的API的學生(GET,PUT,POST,刪除)。另外,我還有更多的資源,比如老師,課程等等。每個資源都會定義一組API。現在,我想以一種整潔的方式來設計我的API(我知道這非常模糊和無組織)。我想最終調用它們作爲
http://localhost:3000/api/Students/getAllStudents
http://localhost:3000/api/Students/getStudentByName?name='abc'
現在,我有一個學生,api.js,我已經把這些2 API和類 - api.js和老師,api.js包含自己各自的API。但是,這太沒有結構了。 是否可以使用「名稱」這樣的命名空間? 任何幫助真的很受歡迎..
但隨後的URL編碼,怎麼會爲同一代碼寫?是否有一些特定的設計模式需要遵循?或任何具體的參考資料,可以幫助我達到相同的目的。 –
這是一個很好的答案!我打算儘快在Restivus中提供這種支持(它不會在0.7.0發佈之後)。我希望你不介意我是否使用這段代碼作爲參考。 – kahmali
剛剛提交了一個問題,以防您或其他人想在Restivus中討論對此的支持:https://github.com/kahmali/meteor-restivus/issues/70。如所承諾的,我在此使用您的代碼作爲參考。只是一個頭。 – kahmali