2014-10-31 13 views
5

Tôi đang viết một dự án API WEB, nơi tôi sử dụng OData để truy vấn tài nguyên. Dịch vụ phải được RESTful. Nhưng tôi không chắc chắn nếu OData là RESTful vì định dạng URI.Có phải OData RESTful không?

Mọi nơi tôi nhìn dạng REST của URI trông giống như định dạng này

http://example.com/resources/142 

Nhưng OData URI nên như thế này

http://example.com/resources(142) 

Tôi không chắc chắn nếu cả hai là phù hợp với REST hoặc OData không phải là hoàn toàn RESTful.

Trả lời

7

Nếu dịch vụ bạn đang viết phải là RESTful và bạn lo lắng về định dạng URI, thì bạn nên thực hiện một số nghiên cứu về chủ đề, vì ngữ nghĩa URI hoàn toàn không liên quan đến REST.

Ràng buộc duy nhất REST áp đặt trên URI là chúng được coi là định danh nguyên tử, có nghĩa là chúng không thể được chia thành các phần để hiểu và một URI xác định một và chỉ một tài nguyên. Ngoài ra, ngữ nghĩa và định dạng URI không liên quan. Điều quan trọng đối với REST là cách khách hàng nhận được URI. Nếu họ đang đọc các mẫu URI từ tài liệu và điền trình giữ chỗ với các giá trị, thì đó không phải là RESTful. Bạn nên làm một số nghiên cứu về HATEOAS nếu đó là điều mới mẻ đối với bạn.

0

(Tôi sẽ thêm này như là một lời nhận xét nhưng tôi không có đại diện.)

Có một vài câu hỏi hay về chủ đề này trên SO đã:

Điều tôi lấy được từ điều này là có nhiều API RESTful hơn chỉ định dạng URI và OData là nhiều hơn về nội dung thư kiến trúc, vì vậy nếu bạn tuân thủ các nguyên tắc của REST với OData, thì nó có thể được coi là RESTful.

1

URI không quá nghiêm ngặt để gọi nó là REST-ful. Không có tiêu chuẩn để kiểm tra dịch vụ của bạn và nói: "Đây là REST" hoặc "Đây không phải là REST".

Không có vấn đề nếu URI là:

http://my.service/users/user-1/ 

HOẶC

http://my.service/users/1/ 

HOẶC

http://my.service/users(1) 

Nó vẫn có thể được dịch vụ REST ful.

Các vấn đề liên quan