Saya sedang menulis API Istirahat dan saya bertanya-tanya bagaimana cara terbaik untuk menangani mendukung versi yang berbeda. Dengan ini saya tidak bermaksud bagaimana mendefinisikan URI sebagai V2 atau V3, melainkan bagaimana menyusun kode mengingat bahwa itu perlu:
- Mendukung banyak versi secara bersamaan, mis. V1 & V2 & V3 URI harus hidup pada waktu yang bersamaan. Saya akan pensiun V1 ketika mengatakan V4 datang untuk membatasi jumlah yang didukung pada suatu waktu.
- Hindari duplikasi kode sebanyak mungkin
- Buat mudah untuk menambahkan perubahan yang tidak melanggar ke versi, tanpa itu berdampak pada versi lain
Tampaknya ada beberapa pendekatan yang dapat diambil:
Gunakan Git untuk mengontrol versi, dengan cabang untuk versi yang berbeda (dan versi lama pada dasarnya tidak memiliki pekerjaan pengembangan baru yang dilakukan di atasnya). Ini berarti tidak ada duplikasi kode karena hanya versi terbaru yang ada dalam kode, tetapi versi sebelumnya perlu bekerja dengan versi baru DB sampai mereka pensiun.
Kode duplikat sehingga setiap versi ditangani dalam aplikasi yang sama dan memiliki jalur kode yang benar-benar terpisah, tetapi ini berarti banyak duplikasi
Gunakan kembali banyak kode di seluruh versi, tetapi ini akan membuatnya lebih sulit untuk dipertahankan karena mengubah satu versi lebih mungkin berdampak pada versi sebelumnya
Apakah ada praktik terbaik untuk mengatasi masalah ini karena semua opsi tampaknya memiliki masalah sendiri?