什么样的价值,当我需要实现我自己的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