0

Play framework with java

download.png

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

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí