2016-02-14 16 views
5

Tôi đang sử dụng Freya web stack để xây dựng API REST và đang gặp sự cố khi xác định Mẫu URI URI cho tuyến đường.Freya - Cách xác định Mẫu Uri với Tham số Chuỗi Truy vấn Tùy chọn

tôi đã xác định một Uri Template trông như thế này:

"/{store}/{partition}{?date}" 

Bây giờ Freya Router phù hợp này Uri Template với các url sau:

http://localhost/a/1?date=2015 
http://localhost/b/3?date=2013 

Tuy nhiên, nếu tôi bỏ qua chuỗi truy vấn thì Mẫu Uri không còn khớp với url nữa. Ví dụ, các url sau đây không phù hợp bởi template:

http://localhost/a/1 
http://localhost/b/3 

Làm thế nào để xác định một Uri Template sử dụng Freya với các thông số chuỗi truy vấn tùy chọn?

Bất kỳ trợ giúp nào được đánh giá cao, cảm ơn trước.

+0

Ok, vì vậy tôi đã không tìm thấy chính xác câu trả lời tôi đang tìm kiếm nhưng đã tìm thấy một cách để đạt được kết quả tôi muốn. Vui lòng xem câu trả lời của tôi bên dưới. –

Trả lời

3

Tôi không thể tìm thấy bất kỳ thứ gì trong mã nguồn của Freya cho thấy các tham số chuỗi truy vấn có thể được xác định là tùy chọn trong Mẫu Uri.

Tuy nhiên, tôi có thể xác định hai tuyến thể được định nghĩa với hai riêng biệt Uri Templates trỏ đến cùng freyaMachine.

tôi đã kết thúc với hai tuyến đường như thế này:

let routes = 
    freyaRouter { 
     route (Methods [GET]) "/{store}/{partition}" myMachine 
     route (Methods [GET]) "/{store}/{partition}{?date}" myMachine 
    } |> FreyaRouter.FreyaPipeline 
Các vấn đề liên quan