2011-03-13 36 views
6

Tôi đang trong quá trình tạo RESTful API. Tôi đọcThiết kế RESTful URI

http://microformats.org/wiki/rest/urls

nhưng trang web này không cho tôi đủ thực hành "tốt" về thiết kế API của tôi. Cụ thể là tôi sẽ viết một API (chỉ các phương thức GET cho đến nay) mà sẽ cung cấp các hàm để chuyển đổi tọa độ địa lý.

Ví dụ: Một geohash là một đại diện giá trị duy nhất của một phối hợp, do đó /convert/geohash/u09tvkx0.json?outputformat=latlong

có ý nghĩa. Mặt khác, /convert/latlong.xml?lat=65 & long = 13 & outputformat = UTC yêu cầu hai giá trị đầu vào.

Xem "câu hỏi" của tôi? Điều gì tạo nên một API tốt đòi hỏi nhiều hơn một tham số đầu vào?

(Cố gắng để "xác định" thực hành tốt bằng cách "phân tích" twitter & FF nhưng thất bại)

Trả lời

4

Về mặt được coi là một "kỹ thuật" đúng REST của URI, không có sự khác biệt giữa việc sử dụng các thông số chuỗi truy vấn hay không . Trong RFC 3986, nó khẳng định:

Thành phần truy vấn chứa dữ liệu phi thứ bậc đó, cùng với dữ liệu trong thành phần đường dẫn (Phần 3.3), dùng để xác định một tài nguyên

Đó là lý do tại sao bạn gặp khó khăn trong việc tìm kiếm một "thực hành tốt nhất" dứt khoát. Có nói rằng, nhiều API REST đã nhúng nhiều tham số vào URI mà không sử dụng chuỗi truy vấn. Đối với exammple, để xác định mô hình của ô tô, bạn sẽ thấy các trang web có URI như sau: cars.com/honda/civic. Trong trường hợp đó, nó là rất rõ ràng mối quan hệ giữa 2 và vì vậy mọi thứ trong URI là "có thể hack". Nó cũng dễ dàng hơn để gắn bó với một cách tiếp cận chuỗi không truy vấn khi bạn chỉ có một tham số xác định duy nhất tài nguyên; nhưng nếu nó giống như một truy vấn tìm kiếm, thì tôi có thể giữ nó trong chuỗi truy vấn. Điều này SO question có một cuộc thảo luận thú vị về các phương pháp khác nhau là tốt.

Trong ví dụ trên, tôi sẽ gắn bó với các tham số chuỗi truy vấn. Mặc dù REST thường có nhiều URL trực quan hơn, nhưng đó thực sự không phải là những gì REST nói đến. REST có nhiều thông tin về hypermedia và HATEOAS.

+0

Cảm ơn bạn đã giải thích này! Nó lấp đầy khoảng trống khái niệm mà tôi có với "nguyên tắc thiết kế" của REST. Đã không nhận thức được HATEOAS nhưng tôi thích thái độ. – JohnDoe

0

Có rất ít thông lệ REST của tốt nhất để được theo sau khi thiết kế một API REST

  1. Tóm tắt vs bê tông
  2. Operations CRUD
  3. Lỗi Xử lý
  4. API Versioning
  5. Filtering
  6. An
  7. Analytics
  8. Documentation
  9. ổn định và nhất quán
  10. URL Cấu trúc

Read More

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