Đường ray đi kèm với tài nguyên RESTful ngoài hộp, nhưng bạn có sử dụng các tài nguyên đó cho API công khai thực tế của mình không? Nếu có, bạn sẽ thực hiện phiên bản API của mình như thế nào theo số example.com/api/v2/foo/bar
?Các phương pháp hay nhất để thiết kế API công khai RESTful trên Rails là gì?
Trả lời
Thông thường, các API cho ứng dụng của tôi thực sự được xây dựng trên cùng một tài nguyên tạo nên giao diện HTML. Đối với một số (không phải tôi), có thể chỉ sử dụng mã xuất phát từ máy phát điện giàn giáo - nhưng bất kể tôi viết tùy chỉnh hay để máy phát xử lý nó, có rất ít trường hợp tôi chỉ hiển thị tài nguyên cho chương trình API và không cho người dùng cuối xem.
Phiên bản không phải là vấn đề đối với các ứng dụng mà tôi đã tạo cho đến nay, nhưng tôi có thể nghĩ ra hai cách để triển khai nó.
1) Bạn có thể thêm các tuyến đường với tiền tố 'v1,' 'v2,' vv, mà thiết lập một tham số mà bạn có thể sau đó truy cập vào bộ điều khiển để xác định quá trình xử lý để xảy ra:
trong tuyến đường. rb:
map.resources :posts, :path_prefix => '/:version'
trong posts_controller.rb
class PostsController < ApplicationController
def index
respond_to do |format|
format.xml do
if params[:version] == 'v1'
# ...
else
# ...
end
end
end
end
end
2) Bạn cũng có thể cân nhắc thêm một định dạng phản ứng tùy chỉnh cho mỗi phiên bản
trong initializers/mime_types.rb
Mime::Type.register_alias "application/xml", :v1
Mime::Type.register_alias "application/xml", :v2
trong posts_controller.rb
class PostsController < ApplicationController
def index
respond_to do |format|
format.v1 do
# ...
end
format.v2 do
# ...
end
end
end
end
Cựu sẽ cung cấp cho bạn các URL như example.com/v1/posts.xml và example.com/v2/ posts.xml; sau này sẽ cung cấp cho bạn các URL như example.com/posts.v1 và example.com/posts.v2
- 1. Các phương pháp hay để thiết kế API dựa trên Websocket
- 2. Cách triển khai thiết kế web đáp ứng và các phương pháp hay nhất của mình
- 3. Các phương pháp hay nhất của Team City để triển khai nhiều tầng là gì?
- 4. RESTful API thiết kế hoạt động tốt nhất
- 5. Các phương pháp hay nhất cho triển khai Rails mới trên Linux?
- 6. Phương pháp hay nhất để tận dụng các từ trong Rails là gì?
- 7. Các phương pháp hay nhất để tương thích ngược API
- 8. Chỉ mục MySQL - các phương pháp hay nhất là gì?
- 9. Các phương pháp hay nhất để thêm siêu dữ liệu vào phản hồi JSON RESTful là gì?
- 10. Thiết kế RESTful URI
- 11. Các phương pháp hay nhất về iFrame
- 12. Các phương pháp hay nhất cho trang gốc của API REST là gì?
- 13. Các phương pháp hay nhất để sử dụng các vùng sẵn có EC2 là gì?
- 14. GWT: các phương pháp hay nhất để xây dựng giao diện web2.0 với GWT là gì?
- 15. phương pháp hay nhất để triển khai java sử dụng i18n là gì?
- 16. Django: Các phương pháp hay nhất cho thiết kế cơ sở dữ liệu
- 17. Các phương pháp hay nhất về quyền trên thư mục có thể ghi Apache là gì?
- 18. Thiết kế API RESTful với các liên kết
- 19. Các phương pháp hay nhất để chuyển đổi loại an toàn trong C# là gì?
- 20. Các phương pháp hay nhất cho pubnub trên android
- 21. Các phương pháp hay nhất để gửi phản hồi lỗi trong các dịch vụ web JSON là gì?
- 22. Các phương pháp hay nhất để tự cập nhật các ứng dụng PHP + MySQL là gì?
- 23. Thiết kế RESTful: Paging Collections
- 24. Một số tài nguyên hay về thiết kế công cụ trò chơi 2D là gì?
- 25. Các phương pháp hay nhất để xử lý các chuỗi Unicode trong C# là gì?
- 26. Mã C# tuyệt vời để tìm hiểu các mẫu thiết kế và các phương pháp hay nhất từ?
- 27. Các phương pháp hay nhất để làm theo khi khai báo một mảng trong Javascript là gì?
- 28. Cách tốt nhất để thiết kế cơ sở dữ liệu cho Ruby on Rails là gì?
- 29. Các phương pháp hay nhất trong ngành để triển khai ngoại lệ tùy chỉnh trong C# là gì?
- 30. Các phương pháp hay nhất về Javascript
Một tùy chọn khác cho phiên bản nếu logic nghiệp vụ thực tế khác nhau là sử dụng các tuyến đường có tên. – Kris