Trong một API REST ứng dụng chính bao gồm một số miền liên quan, việc phân chia tài nguyên thành 'khu vực' dựa trên miền doanh nghiệp mà chúng thuộc về hay tốt hơn là duy trì một mô hình duy nhất?
Ví dụ: có các tên miền phụ 'Bán hàng' và 'Hàng tồn kho'. Người dùng của hệ thống thường chỉ quan tâm đến một tên miền tại một thời điểm, nhưng ngoại lệ là có thể. Có một khái niệm 'Mục' tồn tại trong cả hai miền để chúng tôi có thể triển khai tài nguyên 'mục' theo hai cách khác nhau.
có các tài nguyên khác nhau để thể hiện khái niệm trong mỗi miền, mỗi tài nguyên chỉ chứa dữ liệu liên quan:
/ doanh số / mặt hàng /: id
/ hàng tồn kho / vật phẩm /: id
có một tài nguyên với tất cả dữ liệu sẽ được sử dụng trong tất cả các bối cảnh:
/ mục /: id
Ngoài ra còn có rất nhiều tài nguyên chỉ thuộc về một trong các miền.
ưu điểm của 'khu vực'
- dễ hiểu hơn về API cho người dùng chỉ quan tâm đến một tên miền
- dễ dàng thực hiện các tài nguyên hơn (ít công cụ hơn để đọc / cập nhật tại một thời điểm)
- tài nguyên có thể được chuyên biệt hóa / tối ưu hóa hơn cho từng miền cụ thể
- khả năng kiểm soát truy cập vào tài nguyên ở cấp độ chi tiết hơn
ưu điểm của một mô hình thống nhất
- không có tài nguyên trùng lặp cho các khái niệm thuộc về nhiều hơn một miền
- nếu người dùng cần làm việc với nhiều tên miền, anh ta sẽ chỉ phải sử dụng một API duy nhất đáp ứng tất cả các nhu cầu của anh ta
Phân vùng API như được mô tả ở trên có phải là cách hợp lệ để giảm độ phức tạp của cả hợp đồng và triển khai API không? Tôi chưa thấy nó được đề cập nhiều ở bất cứ đâu.
Có thêm điều gì cần được xem xét để đưa ra quyết định có lợi cho một trong hai cách tiếp cận không?