Tôi muốn phát triển ứng dụng RESTful
khi sử dụng CRUD
trong khung chơi. Rất tiếc, tôi không thể tìm thấy cách xác định DELETE
và PUT
trong các tuyến đường của Play. Có thể chỉ có POST
và GET
có sẵn trong Play?Chơi khung CRUD
Trả lời
Bạn có chắc chắn không thể sử dụng DELETE/PUT không? Các tài liệu nói cách khác.
Các HTTP phương pháp
Các phương thức HTTP có thể bất kỳ phương pháp hợp lệ hỗ trợ bởi HTTP (GET, POST, PUT, DELETE, HEAD).
http://www.playframework.org/documentation/2.0.4/JavaRouting
Chơi 2.x có không phải là một mô-đun CRUD biết đến từ chi nhánh 1.x (IMHO may mắn), để xác định các tuyến đường sử dụng không phương pháp tiêu chuẩn như DELETE
hoặc PUT
bạn cần phải chỉ cần sử dụng phương pháp cần thiết trong các tuyến đường:
conf/tuyến:
PUT /put-item controllers.Application.putItem()
Dù sao để sử dụng chúng từ các phương pháp trình duyệt khác ngoài GET
hoặc POST
bạn sẽ cần phải tạo ra một cuộc gọi AJAX, Có một lớn step-by-step mẫu về chủ đề này, dù sao bạn cũng có thể xây dựng nó với chung jQuery.ajax() bằng cách xác định yêu cầu type
$.ajax({
type: "PUT",
url: "@routes.Application.putItem()",
data: { name: "John", location: "Boston" }
}).done(function(msg) {
alert("Data Saved: " + msg);
});
Cảm ơn bạn đã lấy mẫu jQuery! (+1) – atamanroman
Đừng quên phương pháp OPTIONS, nếu bạn sử dụng PUT hoặc DELETE từ trình duyệt web.
Dưới đây là những gì tôi đã làm cho Xóa và cập nhật
POST /path/:id controllers.Controller.update(id: Integer)
POST /path/:id/delete controllers.Controller.delete(id: Integer)
Và trong điều khiển chỉ
public static Result delete(Integer id) {
Result result = null;
if(id>0){
//your code
}
else{
result = ok("invalid id");
}
return result;
}
Nó làm việc cho chúng tôi để xóa và đặt
Nếu mục đích của bạn chỉ để sử dụng là RESTFul của khung chơi và bạn đang sử dụng Java nó tốt hơn là sử dụng CXF hoặc Spring webservices hoặc Jersey. Chơi là một khuôn khổ tuyệt vời nhưng phù hợp nhất với trò chơi là scala
Cách tốt nhất để xác định đây là sử dụng ký tự đại diện (*) Điều này sẽ cho phép bạn sử dụng bất kỳ phương pháp http hợp lệ nào, bao gồm cả phương pháp bạn đã hỏi.
Ví dụ,
* /items/{id} Items.display
trong tuyến sẽ cho phép một GET/mục/15 hoặc một PUT/mục/15. Sử dụng các ký tự đại diện như thế này để làm cho định nghĩa tuyến đường của bạn đơn giản và linh hoạt hơn.
Đây là một bộ định tuyến ví dụ trong một ứng dụng chơi scala có sử dụng các động từ http nổi bật nhất:
GET / controllers.Application.listProjects
PUT /projects/:name controllers.Application.createProject(name: String)
GET /projects/list controllers.Application.listProjects
GET /projects/:id controllers.Application.projects(id: Long)
PUT /projects/:id/:name controllers.Application.addTaskToProject(name: String, id: Long)
PATCH /tasks/:id controllers.Application.modifyTask(id: Long, color:Option[String] ?= None)
Bạn có thể có một cái nhìn vào toàn bộ dự án ví dụ chơi scala đây: https://github.com/nemoo/play-slick3-example
- 1. Khung chơi - Quy ước đặt tên CRUD
- 2. chơi! mô-đun khung 2.0 khuôn khổ
- 3. Cài đặt khung chơi
- 4. JHAML và khung chơi?
- 5. DTO trong Khung Chơi
- 6. chơi khung cài đặt
- 7. UUID với Khung Chơi
- 8. Khung chơi và DB2
- 9. Chơi Khung GUID
- 10. Lồng ghép khung chơi 2.0 và khung công tác Spring
- 11. Chơi khung ngày trong chế độ xem
- 12. Nhập các đầu vào trong khung chơi
- 13. Chơi Khung 2.1: Tệp lớp BodyParser thiếu
- 14. Chơi Khung 2 Làm cho pdf
- 15. body: => Html trong khung chơi?
- 16. Chơi sử dụng bộ nhớ khung
- 17. Kiến trúc Java EE với Khung Chơi
- 18. Cron Công việc trong khung chơi 2.0
- 19. Sử dụng Eclipse với Khung chơi 2.0
- 20. Chỉ báo tiến trình trong khung chơi
- 21. Khung chơi không thể tìm thấy javac
- 22. bầu không khí trong khung chơi
- 23. JPA và Chủ đề trong khung chơi
- 24. POJO tới JSON trong khung chơi
- 25. chơi framework 2.0 - làm thế nào để cho phép các module CRUD
- 26. Chơi framework 2.1 và Ebean: @ManyToOne và @OneToMany, CRUD và cascade
- 27. Khuôn khổ thực thể Nhiều đối với CRUD
- 28. dai dẳng: CRUD TypeClass
- 29. đơn giản CRUD hệ
- 30. Vui lòng đề nghị một khung Java để làm cho CRUD dễ dàng
Phiên bản nào của Chơi ? – biesior
Tôi sử dụng Play 2.0.4. – Ghashange