2012-07-30 9 views
5

Eğer herhangi bir kimse bana iyi bir örnek/en iyi REST API kodunun sürüm oluşturma (uri-temelli, "/ v1/zzz" ve "/ v2/xxx" anlamına geldiği anlamına gelirse veya daha iyi bir şekilde Kabul Etme başlık) - Java/Spring projesinde? Korkarım projemde şu anda çok karmaşık yapıyorum, bu yüzden başkalarından öğrenmek güzel olurdu.Java/Spring projesinde sürümlü REST API kodunu düzenlemeyle ilgili en iyi yöntemler (örnekler?)

Açıklama: filtreleri kullanarak yapmalıyım ve sonra davranışı değiştirmek için bazı tasarım desenleri kullanıp kullanmadığımı bilmiyorum, ancak bu benim filtremizi oldukça karmaşık hale getirecektir .. ya da baharla ilgili bazı hileleri düşünmüyorum olabilir DI, kodumu temizlerim. En basit yaklaşım, farklı sürümlere sahip olacak her yöntemin bazı strateji modelidir, ancak ne de çok temiz görünmüyor :-(

+0

Bize ne yaptığınızı ilk kez gösterebilmeniz için size çok yardımcı olacaktır, çünkü size bu kadar karmaşık bir öneri sunalım. Yoksa sadece URL kalıbını mı kullanıyorsunuz? Sence bu çok karmaşık mı? Açıklık sağlamak için bu bilgiyi bir [düzenle] ile sorunuza eklemeyi düşünün. Teşekkür ederim. Eğer API yeni sürümüne sahip Ayrıca – jmort253

+0

nasıl anlarsınız? Ben aktif kodunuzu değiştirerek varsayarak yapıyorum ama v2'ye v1 diğerine geçmek için ne zaman hangi kriterleri belirlemek için kullanılır? arasında – jmort253

+0

olası yinelenen (http://stackoverflow.com/questions/389169/best-practices-for-api-versioning) – jmort253

cevap

3

Apigee http://offers.apigee.com/api-design-ebook-bw/'daki kitap ve blogları okumanızı tavsiye ederim. hata işleme URL'ler tasarımı ve yapmak için beni gerçekten pratik öneriler.

http://www.stormpath.com/blog/spring-mvc-rest-exception-handling-best-practices-part-2 dinlendirici uygulamalar için işleme jenerik hata yapmaya bahar mvc nasıl yapılandırılacağı hakkında gerçekten harika bir yazı vardır. olduğunu headrs kabul üzerindeki filtreleme gelince

Yay yapmak için oldukça kolay bir yöntemdir, çünkü süzgeçlere göre bir işleyici metodu eşlemesini daraltmanızı sağlar. aşağıda eşleme.

@RequestMapping(value="/narrow/headers/{name}/{email}/{customerNumber}", 
     method={RequestMethod.POST,RequestMethod.GET}, 
     headers="Referer=http://localhost:8080/SpringMVC/request-mappings.html") 
public ResponseEntity<String> narrowOnHeaders(
     @PathVariable("name")String name, 
     @PathVariable("email") String email, 
     @PathVariable("customerNumber") Integer customerNumber, 
     @RequestHeader("Referer") String referer 
    ) 
+3

Kırık URL [API sürümleri için en iyi uygulamalar?]: 'İstenen URL/api-tasarım-e-kitap -bw/bu server.' bulunmadı – manuna

İlgili konular