Play framework with java
Bài đăng này đã không được cập nhật trong 3 năm
Bài trước các bạn đã biết tổng quan về Play framework. Hôm nay mình sẽ hướng dẫn cụ thể các bạn cách cài đặt, sử dụng cùng một số ví dụ đơn giản của Play.
Cài đặt Để cài đặt được play framework. Yêu cầu là môi trường đã chạy java
Check java --version
Nếu không có, bạn có thể cài đặt tại đây Download here
Bước đầu tiên, bạn download công cụ để tự động generate source code là Activator. Download here
Sau khi tải về, giải nén activator tải nơi mà mình được gán permission để sử dụng. Add activator vào biến môi trường
Trên linux
export PATH=/path/to/activator-x.x.x/bin:$PATH
Cần đảm bảo rằng activator là file có khả năng chạy trên máy bạn bằng cách gán quyền
chmod u+x /path/to/activator-x.x.x/activator Trên window
setx PATH=%PATH%;"C:\path\to\activator-x.x.x\bin"
=> Vậy là xong bước cài đặt công cụ để chạy play app.
Bây giờ chúng ta sẽ đi tạo Play source code.
Gõ activator new my-app play-with-java
Như vậy là xong việc khởi tạo source code. Cd vào project và gõ activator run để chạy app default.
Một số lệnh cơ bản của play như : activator run để chạy app với development mode. activator test để chạy test activator compile để compile source code mà không chạy server. activator -jvm-debug 9999 để bật chế độ debug
Bây giờ mình sẽ nói về cách làm việc với Play.
Hầu hết tất cả các request được nhận bởi Play đều được xử lý bởi các action method.
Ví dụ:
public Result index() {
return ok("Got request " + request() + "!");
}
Một action medthod sẽ trả về Resule value. Trong ví dụ này, hàm ok trả về status là 200 và text là "Got .."
Tiếp theo là controller: Controller đơn thuẩn chỉ là một class mà kế thừa play.mvc.Controller để sử dụng lại một số methods có sẵn. Controller class sẽ bao gồm chứa các method. Mỗi method sẽ phục vụ một request
Một method còn có thể nhận vào các parameter từ client. Ví dụ
public Result index(String name) {
return ok("Hello " + name);
}
Ví dụ trên đây, client gửi 1 request có paramter là name. Giá trị name sẽ được resolved bởi router. Router mình sẽ nói ngay bên dưới.
Từ đầu tới giờ mình có nói đến type là Result. Vậy Result là gì. Một Http result sẽ bao gồm status code, headers và body data để gửi về client. Những thứ này được định nghĩa bởi play.mvc.Result và Results lass có cung cấp một số hàm helper để tạo thành những result chuẩn. Ví dụ như ok method chúng ta đã sử dụng ở trên.
Play còn cung cấp cơ chế redirect sang một method khác như
public Result index() {
return redirect("/user/home");
}
Thành phần quan trọng bậc nhất trong Play không thể không nhắc tới Http routing. Routing là một thành phần build-in của play. Nó là nơi để mapping request uri đến method.
routing được config trong conf/routes Bây giờ mình sẽ ví dụ một request được gửi từ client và cách routing config cũng nhưng cách xử lý của action method.
Client
Ví dụ. AngularJs client gửi một request dạng
var request = {
method: 'GET',
url: serverUrl + '/user/1',
header: {
Auth-Token: '..'
}
}
$http(request).then(function (data, status){
console.log(data, status);
});
Play server
GET /user/:id controllers.Users.get(id: string)
Users Controller class
Trong controller này sẽ implement get method để xử lý request vừa nhận được
Ví dụ
public Result get(string id) {
String userName = userService.get(id).getUserName();
return ok(userName);
}
Như vậy là xong 1 follow gửi và nhận request giữa client và play. Kết quả dòng console sẽ in ra giá trị userName và status là 200.
Trên đây mình đã hướng dẫn cách implement Play với một số bài toán đơn giản. Còn khá nhiều thứ thú vị với Play mà mình không có thời gian để nói thêm. Hy vọng những bài sau sẽ nói chi tiết hơn về Uri pattern trong file routes, cách Play tích hợp với những thành phần bên thứ 3 như thế nào, hay cách tích hợp với những client framework như Angular hay ReactJS như nào.
Hẹn gặp lại các bạn vào những bài viết sau.
All rights reserved