2012-07-30 3 views
5

Ich bin neugierig, wenn jemand mich auf ein gutes Beispiel/Best Practice der Organisation von REST-API-Code mit Versionierung (uri-basiert, bedeutet "/ v1/zzz" und "/ v2/xxx" oder noch besser etwas auf Accept Header) - im Java/Spring Projekt? Ich fürchte, ich mache es gerade in meinem Projekt zu kompliziert, also wäre es schön, von anderen zu lernen.Best Practices (Beispiele?) Zum Organisieren versionierten REST-API-Codes im Java/Spring-Projekt?

Klarstellung: nicht sicher, ob ich es durch Filter tun sollte, und dann ein Designmuster verwenden, um das Verhalten zu ändern, aber das macht meinen Filter ziemlich kompliziert .. oder ich denke nicht über einen Trick mit Feder und DI, damit ich meinen Code sauberer machen kann. der einfachste Ansatz ist einige Strategie-Muster in jeder Methode, die unterschiedliche Versionierung haben, aber es scheint auch nicht zu sauber :-(

+0

Es würde sehr hilfreich sein, wenn Sie uns zuerst zeigen könnten, was Sie gerade tun, damit wir Ihnen nicht einen Vorschlag geben, der genauso kompliziert ist. Oder beziehen Sie sich nur auf das URL-Muster? Was lässt dich denken, dass es zu kompliziert ist? Erwägen Sie, diese Informationen über eine [Bearbeiten] zu Ihrer Frage für Klarheit hinzuzufügen. Vielen Dank. – jmort253

+0

Woher wissen Sie, wann Sie eine neue Version Ihrer API haben? Ich gehe davon aus, dass Sie Ihren Code aktiv ändern, aber anhand welcher Kriterien bestimmen Sie, wann Sie von v1 auf v2 wechseln müssen? – jmort253

+0

mögliches Duplikat von [Best Practices für die API-Versionierung?] (Http://stackoverflow.com/questions/389169/best-practices-for-api-versioning) – jmort253

Antwort

3

Ich empfehle sehr, das Buch und Blogs auf Apigee http://offers.apigee.com/api-design-ebook-bw/ zu lesen Ich fand, dass es gab mich wirklich praktische Ratschläge für die URLs der Entwicklung und Fehlerbehandlung zu tun.

http://www.stormpath.com/blog/spring-mvc-rest-exception-handling-best-practices-part-2 hat eine wirklich große Artikel auf, wie Spring MVC konfigurieren generische Fehlerbehandlung für einen erholsamen Anwendungen zu tun.

wie zum Filtern auf headrs akzeptieren, ist ziemlich einfach zu tun, da spring Sie eine Handler Method Mapping basierend auf dem Filter eingrenzen können, wie in den headern = in der req Abbildung unten.

@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

Defekte URL: 'Die angeforderte URL/api-design-ebook -bw/wurde nicht auf diesem Server gefunden – manuna

Verwandte Themen