Bir Rest API yazıyorum ve farklı sürümleri desteklemeyi en iyi nasıl ele alacağımı merak ediyorum. Bununla nasıl bir URI'yi V2 veya V3 olarak tanımlayacağımı değil, kodun nasıl yapılacağını nasıl yapılandıracağımı kastediyorum:
- Aynı anda birden fazla sürümü destekleyin, örn. V1 ve V2 ve V3 URI'leri aynı anda canlı olmalıdır. Herhangi bir zamanda desteklenen miktarı sınırlamak için V4 geldiğinde V1'i emekliye ayırırım.
- Mümkün olduğunca çok kod çoğaltmasından kaçının
- Bir sürüme, diğer sürümleri etkilemeden kesintisiz değişiklikler eklemeyi kolaylaştırın
Görünebilecek birkaç yaklaşım var gibi görünüyor:
Sürümleri, farklı sürümler için bir dalla (ve esasen üzerinde yeni geliştirme çalışmaları yapılmadan) kontrol etmek için Git'i kullanın. Bu, yalnızca en son sürüm kodda olduğu için kod çoğaltması anlamına gelmez, ancak önceki sürümlerin emekli oluncaya kadar DB'nin yeni sürümü ile çalışması gerekir.
Her sürüm aynı uygulamada işlenecek ve tamamen ayrı bir kod yoluna sahip olacak şekilde kodu çoğaltın, ancak bu çok fazla çoğaltma anlamına gelir
Sürümler arasında çok sayıda kod yeniden kullanın, ancak bir sürümü değiştirmenin önceki sürümü etkileme olasılığı daha yüksek olduğundan bu, bakımını zorlaştıracaktır.
Tüm seçeneklerin kendi sorunları olduğu için bu sorunla başa çıkmak için en iyi uygulama var mı?