2012-07-30 14 views
5

誰かが、バージョン管理(uri-based、 "/ v1/zzz"、 "/ v2/xxx"を意味する)を持つREST APIコードを整理したり、Acceptヘッダー) - Java/Springプロジェクトでは?今私のプロジェクトでは複雑すぎるので、他の人から学ぶのはうれしいですね。Java/Springプロジェクトでバージョン管理されたREST APIコードを整理するベストプラクティス(例)

明確化:フィルターを通す必要があるかどうかわからず、動作を変更するためにいくつかのデザインパターンを使用しますが、これによってフィルタがかなり複雑になります。または、春とDI、私は自分のコードをきれいにすることができます。最も簡単なアプローチは、異なるバージョン管理を持つすべての方法にいくつかの戦略パターンですが、あまりにもきれいではありません.--(

+0

あなたが現在行っていることを最初に示すことができれば、多大な助けになります。または単にURLパターンを参照していますか?何が複雑すぎると思いますか?わかりやすくするために、この情報をあなたの質問に[編集]で追加することを検討してください。ありがとうございました。 – jmort253

+0

また、新しいバージョンのAPIを入手したときの仕組みはどうですか?私はあなたのコードを積極的に変更していると仮定していますが、v1からv2への移行時期を判断する基準は何ですか? – jmort253

+0

[APIのバージョン管理のベストプラクティス]の複製が可能です(http://stackoverflow.com/questions/389169/best-practices-for-api-versioning) – jmort253

答えて

3

Apigee http://offers.apigee.com/api-design-ebook-bw/の本とブログを読むことを強くお勧めしますURLを設計し、エラー処理を行うため、私は本当に実用的なアドバイス。

http://www.stormpath.com/blog/spring-mvc-rest-exception-handling-best-practices-part-2は安らかなアプリケーションのための取り扱い一般的なエラーを行うには、スプリングMVCを設定する方法の本当に素晴らしい記事があります。

で受け入れるheadrsにフィルタリングするためとして、春以降かなり簡単に、ヘッダにあるようにフィルタに基づいてハンドラメソッドのマッピングを絞り込むことができますreqの=下のマッピングを行います。

@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

壊れたURL: 'リクエストされたURL/api-design-ebook -bw /はこのサーバー上に見つかりませんでした。 – manuna

関連する問題