Perusahaan tempat saya bekerja mempertahankan produk SaaS yang sukses yang tumbuh "organik" selama bertahun-tahun. Kami berencana untuk memperluas jajaran produk baru yang akan berbagi data dengan produk yang sudah ada. Untuk mendukung ini, kami mencari cara untuk menggabungkan logika bisnis menjadi satu tempat: lapisan layanan web. Lapisan WS akan digunakan oleh:
- Aplikasi web
- Alat untuk mengimpor data
- Alat untuk berintegrasi dengan perangkat lunak klien lain (bukan API per se)
Kami juga ingin membuat API yang dapat digunakan oleh pelanggan kami yang mampu menggunakannya untuk membuat integrasi mereka sendiri. Kami bergumul dengan pertanyaan berikut:
Haruskah API internal (alias lapisan WS) dan API eksternal menjadi satu di yang sama, dengan pengaturan keamanan dan izin untuk mengontrol apa yang dapat dilakukan oleh siapa, atau mereka harus menjadi dua aplikasi terpisah di mana API eksternal hanya memanggil API internal seperti aplikasi lainnya? Sejauh ini dalam perdebatan kami tampaknya memisahkan mereka mungkin lebih aman, tetapi akan menambah biaya tambahan.
Apa yang telah dilakukan orang lain dalam situasi yang sama?