Tôi đang tìm kiếm các thông lệ tốt nhất về thiết kế API RESTful đối với trường hợp sử dụng sau đây:chìa khóa composite cho các phương pháp REST API
Object miền xe:
class Vehicle {
private String vehicleType;
private String colour;
private String transmission;
private String yearOfIssue;
}
Một đối tượng dụ:
Vehicle = {vehicleType : 'Car', colour : 'Red', transmission : 'Automatic', yearOfIssue : '2008'};
Trong mô hình miền này, không có trường duy nhất định danh duy nhất (ví dụ: vehicleId), mà là tất cả các trường của đối tượng cùng tạo thành khóa chính (ràng buộc này có trong lớp cơ sở dữ liệu) .
Chúng tôi không có sự linh hoạt để thay đổi mô hình miền này để thêm một định danh duy nhất của trường. Vì vậy, câu hỏi của tôi là như sau - Nếu tôi muốn thêm một API REST đơn giản trên đầu của đối tượng miền này cung cấp chức năng đơn giản để TẠO, CẬP NHẬT, DELETE và GET Xe, thực hành tốt nhất cho các điểm cuối PATH cho là gì những phương pháp này?
Tiếp theo ví dụ trên, nếu mô hình miền là để có một trường duy nhất định danh duy nhất vehicleId, sau đó tôi có thể tưởng tượng các điểm cuối sau:
GET /vehicles/:vehicleId
PUT /vehicles/:vehicleId
DELETE /vehicles/:vehicleId
Tôi không biết của một mô hình tồn tại tương tự như điều này cho các phím tổng hợp dưới dạng:
GET /vehicles/:vehicleTypecolourtransmissionyearOfIssue
GET /vehicles/CarRedAutomatic2008
có vẻ không chính xác.
Bất kỳ lời khuyên nào về mẫu tốt để tuân theo trường hợp sử dụng này sẽ được đánh giá cao.
Cảm ơn
Sử dụng đường dẫn tốt hơn thông số để chỉ định khóa, vì nó hoạt động với bất kỳ động từ nào. Ví dụ FOr bạn có thể cập nhật bằng cách sử dụng 'POST/vehicle/Car/Red/Automatic/2008' –
@JohnHenckel theo http://tools.ietf.org/html/rfc3986#section-3.4, các tham số truy vấn là một phần của URL và do đó bạn cũng có thể POST cho chúng. xem https://stackoverflow.com/a/20637055/214446 – mb21