Câu hỏi:Breeze và RESTful WebAPI
giá trị gì không khoe cung cấp khi tôi cần phải thực hiện POST của riêng tôi/PUT/GET điểm cuối mỗi thực thể trong WebAPI?
Bối cảnh:
This có vẻ là một việc thực hiện phổ biến của một bộ điều khiển serverside Breeze:
[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
}
Tôi ở giữa xây dựng một API RESTish rằng, đến thời điểm này, có các điểm cuối như:
GET /api/todo/1
PUT /api/todo
POST /api/todo
Có vẻ như Breeze yêu cầu các điểm cuối phải đơn giản hơn nhiều er (cho tốt hơn hoặc tệ hơn) - chỉ là một bó của GETS và một điểm cuối POST SaveChanges. Điều này khiến tôi nghĩ rằng Breeze có thể phát triển nhanh chóng với một ứng dụng web đơn lẻ, thật dễ dàng ... nhưng ngay khi bạn có khách hàng ẩn danh, bạn phải buộc họ vào bất kỳ quy ước giao diện nào bạn đã tạo trong ứng dụng khách của bạn, trong đó có vẻ như để đánh bại mục đích của thiết kế API RESTful. Đây có phải là trường hợp không?
Câu trả lời rõ ràng trong pha lê! Cảm ơn! – Riscie
Câu trả lời rất hay bằng văn bản và đầy đủ! – user1789573