什麼樣的價值,當我需要實現我自己的POST/PUT/GET每個實體端點的WebAPI不微風提供?
背景:
This似乎是一個服務器端的微風控制器的共同執行:
[BreezeController]
public class TodosController : ApiController {
readonly EFContextProvider<TodosContext> _contextProvider =
new EFContextProvider<TodosContext>();
// ~/breeze/todos/Metadata
[HttpGet]
public string Metadata() {
return _contextProvider.Metadata();
}
// ~/breeze/todos/Todos
// ~/breeze/todos/Todos?$filter=IsArchived eq false&$orderby=CreatedAt
[HttpGet]
public IQueryable<TodoItem> Todos() {
return _contextProvider.Context.Todos;
}
// ~/breeze/todos/SaveChanges
[HttpPost]
public SaveResult SaveChanges(JObject saveBundle) {
return _contextProvider.SaveChanges(saveBundle);
}
// other miscellaneous actions of no interest to us here
}
我在建設RESTish API的中間就是那個,到了這一點,有像下面這樣的端點:
GET /api/todo/1
PUT /api/todo
POST /api/todo
看來Breeze要求端點很簡單呃(好或壞) - 只是一堆GETS和一個SaveChanges POST端點。
這讓我想到Breeze使用單一的Web客戶端進行快速開發,這是一件輕而易舉的事情......但只要有匿名客戶端,就必須強制他們進入您創建的任何breeze接口約定在您的客戶端,其中似乎擊敗了RESTful API設計的目的。是這樣嗎?
晶瑩剔透的答案!謝謝! – Riscie
寫得很好,完整的答案! – user1789573