HTTP routing Sacala

The built-in HTTP router

Router là thành phần phụ trách xử lý yêu cầu từ HTTP tới các Action.

Gồm 2 thành phần chính :

– Gồm các chuỗi truy vấn như (/clients/1542, /photos/list)

– Gồm các phương thức GET, POST…

Router được định nghĩa trong file conf/routes

The routes file syntax

File conf/routes định nghĩa các phương thức truy vấn cho toàn bộ dự án, mỗi một router bao gồm phương thức HTTP và URI pattern (URI pattern sẽ được nói ở phía dưới), cả hai kết hợp với Action trong controller
Ví dụ:

Mỗi router bắt đầu là phương thức HTTP(GET) tiếp theo là URI(/clients/:id) sau đó là định nghĩa tham số.

The HTTP method

Các phương thức HTTP được hỗ trợ các kiểu sau (GET, POST, PUT, DELETE, HEAD).

The URI pattern

Static path

Ví dụ định nghĩa router sau sẽ lấy list thông khách hàng.

Dynamic parts

Ví dụ định nghĩa router sau sẽ lấy ID thông tin khách hàng.

Call to the Action generator method

Router không có parameters chỉ cung cấp tên phương thức:

Có paramaters trong đường dẫn URI hoặc từ câu truy vấn

hoặc

Với router ở trên là định nghĩa method trong controller tương ứng sau:

Parameter types

Đối với các thông số của kiểu String, tham số là tùy chọn. Nếu bạn muốn Play chuyển đổi các tham số đầu vào thành một kiểu của Scala bạn có thể gõ một cách rõ ràng các thông số:

Trong controller tương ứng với router trên như sau:

Parameters with fixed values

Ngoài ra chúng ta có thể thiệt định một giá trị default cho parameter như sau:

Parameters with default values

Ví dụ với đường dẫn như sau:

Router được thiết định như sau:

Optional parameters

Bạn cũng có thể chỉ định một tham số tùy chọn mà không cần phải có trong các request trả về

Ví dụ với đường dẫn như sau:

Router được thiết định như sau:

Reverse routing

Bạn tạo ra một bộ điều khiển như sau:

Trong file conf/routes bạn định nghĩa như sau:

Bây giờ bạn có thể reverse URL với action hello method sử dụng controllers.routes.Application như sau:

Add a Comment

Your email address will not be published.