Chúng tôi hiện đang thiết kế API REST để truy cập dữ liệu khách hàng cổ điển. Một trong những yếu tố trong API là tài sản của người dùng. Các tài sản được thêm vào theo một dịch vụ nhất định. API phụ trợ sẽ chỉ thêm một tài sản cho người dùng theo một dịch vụ nhất định. Vì vậy, không có mối quan hệ Người dùng - Tài sản, mà là mối quan hệ Người dùng - [Dịch vụ] - Tài sản.
URI của chúng tôi sẽ trông như thế này:
/users/{id}/assets/{id}/services/{id}
Sử dụng API sẽ biết id tài sản và id dịch vụ để tạo mục nhập mới. Những gì chúng tôi đang đấu tranh với việc tạo ra mối quan hệ này.
Một cách đơn giản là đăng toàn bộ quan hệ /users/{id}/assets/
POST /users/{id}/assets
{asset:${id}, service:{id}, attribute1:"{var}", attribute2:"{var}"}
nhưng sau đó chúng tôi không thực sự tạo ra một tài sản như URI có thể chỉ ra, mà là mối quan hệ dịch vụ tài sản.
Để thay thế, chúng tôi đang xem xét POST cho URI giải quyết mối quan hệ, như thế này:
POST /users/{id}/assets/{id}/service/{id}
{attribute1:"{var}", attribute2:"{var}"}
Nhưng trong trường hợp này, đường dẫn tài nguyên /users/{id}/assets/{id}
sẽ không tồn tại trước POST và sẽ được tạo như một hiệu ứng phụ.
POST có phải là một đường dẫn tài nguyên chưa tồn tại được cho phép không?
Cảm ơn những suy nghĩ của bạn,
Gerard.