Công ty tôi làm việc để duy trì một sản phẩm SaaS thành công đã phát triển "hữu cơ" trong những năm qua. Chúng tôi đang lên kế hoạch mở rộng dòng sản phẩm với bộ sản phẩm mới sẽ chia sẻ dữ liệu với sản phẩm hiện có. Để hỗ trợ điều này, chúng tôi đang tìm cách hợp nhất logic kinh doanh vào một nơi duy nhất: một lớp dịch vụ web. Lớp WS sẽ được sử dụng bởi:
- Các ứng dụng web
- Một công cụ để nhập dữ liệu
- Một công cụ để tích hợp với phần mềm máy khách khác (không phải API mỗi lần)
Chúng tôi cũng muốn tạo một API có thể được sử dụng bởi các khách hàng có khả năng sử dụng API để tạo tích hợp của riêng họ. Chúng tôi đang vật lộn với câu hỏi sau đây:
API nội bộ (còn gọi là lớp WS) và API bên ngoài phải giống nhau, với các cài đặt bảo mật và quyền để kiểm soát những gì có thể được thực hiện bởi ai hoặc chúng có thể là hai ứng dụng riêng biệt mà API bên ngoài chỉ gọi API bên trong như ứng dụng nào khác? Cho đến nay trong cuộc tranh luận của chúng tôi, dường như việc tách chúng có thể an toàn hơn, nhưng sẽ thêm chi phí.
Những người khác đã làm gì trong một tình huống tương tự?