Varolan bir Java API'sinin işlevlerinin çoğunu ortaya çıkarmak için bir REST API oluşturuyorum. Her iki API da kuruluşumda dahili kullanım içindir; Harici kullanım için tasarım yapmak zorunda değilim. Her iki API üzerinde de etkim var ancak REST'i uyguluyorum. Java API yerel uygulamalar için kullanılmaya devam edecektir ("kullanımdan kaldırılmamaktadır"), ancak REST API önemli yeni geliştirmeler için kullanılacaktır.
Bazı Java API sınıfları sadece veridir (özellikli fasulye, alıcılar, ayarlayıcılar). Ve bunların en azından bir kısmı (bazı biçimlerde) REST API'sı üzerinden veri (XML veya JSON olarak biçimlendirilecek) olarak iletilmesi mantıklıdır. Örneğin, bir sunucu makinesi hakkında bilgi depolayan bir sınıf. Bu veri sınıfları için aşağıdaki seçenekle karşı karşıyayım: Ben ...
- orijinal Java sınıfını (veya bir alt sınıfı) doğrudan REST API'sinde gösterme veya
- REST API için özel olarak yeni bir veri aktarım sınıfı (DTO modeli) oluşturuyor musunuz?
Her iki şekilde de REST veri aktarım sınıfları olacak; soru, orijinallerin açıklanması veya yenilerinin oluşturulması (orijinallerin kopyalarının yakınında olabilir). Başka seçenekler de olabilir, ama ben esas olarak bu ikisine odaklanacağım.
# 1 için bağımsız değişkenler:
- KURU (kendini tekrar etme)
- Uygulaması daha hızlı
- REST API'sını yükseltmek daha kolay
# 2 için bağımsız değişkenler:
- REST API'sının Java API'sından ayrı olarak sürümlendirilmesi gerekirse ne olur? (Bu biraz muhtemel.)
- Java veri sınıflarında özellik kaldırma, davranış ekleme veya sınıf hiyerarşisinde değişiklikler gibi önemli değişiklikler varsa ne olur? (Bu da biraz muhtemel.)
Alt satırda, DRY (# 1) ile ayırma (# 2) arasında bir dengeye benziyor.
# 1 ile başlamaya yöneliyorum ve daha sonra # 2'ye geçmede problemler ortaya çıkarsa, ihtiyacınız olanı kanıtlayamayacağınız şeyleri inşa etmemenin çevik rehberini takip ediyorum. Bu kötü bir fikir mi; Ben yine de orada olabilir düşünüyorum # 2 ile başlamak gerekir?
Listelerimde eksik olan büyük tartışmalar / sonuçlar var mı?