Tôi muốn sử dụng $ resource để gọi dịch vụ web RESTful của mình (mà tôi vẫn đang làm việc) nhưng tôi muốn tìm hiểu xem liệu tôi có sửa tập lệnh AngularJS của mình trước không.
Việc cần làm DTO có: {id, order, content, done}
:cmd
là vì vậy tôi có thể gọi api/1/todo/reset
để xóa bảng việc cần làm trong cơ sở dữ liệu.
Đây là đoạn mã với nhận xét về sự hiểu biết của tôi:
function TodoService($resource) {
var src = $resource('api/1/todo/:id:cmd',
{id: "@id", cmd: "@cmd"}, //parameters default
{
ListTodos: { method: "GET", params: {} },
GetTodo: { method: "GET", params: { id: 0 } },
CreateTodo: { method: "POST", params: { content: "", order: 0, done: false } },
UpdateTodo: { method: "PATCH", params: { /*...*/ } },
DeleteTodo: { method: "DELETE", params: { id: 0 } },
ResetTodos: { method: "GET", params: { cmd: "reset" } },
});
//Usage:
//GET without ID
//it calls -> api/1/todo
src.ListTodos();
//GET with ID
//it calls -> api/1/todo/4
src.GetTodo({ id: 4 });
//POST with content, order, done
//it calls -> api/1/todo
src.CreateTodo({ content: "learn Javascript", order: 1, done: false });
//UPDATE content only
//it calls -> api/1/todo/5
src.UpdateTodo({ id: 5, content: "learn AngularJS" });
//UPDATE done only
//it calls -> api/1/todo/5
src.UpdateTodo({ id: 5, done: true });
//RESET with cmd
//it calls -> api/1/todo/reset
src.ResetTodos();
}
Một điều đặc biệt tôi không chắc chắn là phương pháp PATCH, tôi không muốn cập nhật mọi thứ, tôi có thể cập nhật chỉ một lĩnh vực không? Tôi có đang xây dựng đoạn mã này một cách chính xác không?
obj.save()
. Bạn có thể làm những gì bạn đang cố gắng thực hiện với triển khai $ http cơ bản.