RESTFul API アプリケーションを作成する際のベスト プラクティスの 1 つは、バージョン管理を追加することです。例えば:
http://my-server/api/v1/getData
http://my-server/api/v2/getData
私たちのアプリケーションは、Spring フレームワークを使用して REST API を公開します。クラスをコントローラーとしてマークし、RequestMapping アノテーションを使用して URL を関数にマップし、json オブジェクトとの間で変換されるいくつかのオブジェクトを追加します。
例えば:
@RequestMapping(method = RequestMethod.POST, value = "/api/v1/getData")
public @ResponseBody ResponseDataDTO getData(@RequestBody OperationsDetailsTDO details) {...}
次に、API の 2 番目のバージョンを提供します。機能の約 2/3 は同じままで、1/3 は変更されています。変更は、ロジックと JSON オブジェクトの両方にあります。
コードをどのように設計するかが気になります。この種のコードは管理が難しいと思います。
@RequestMapping(method = RequestMethod.POST, value = "/api/{version-var}/getData")
public @ResponseBody ResponseDataDTO createReleaseFromTemplate(@PathVariable("version-var") Integer version, @RequestBody OperationsDetailsTDO details) {
if (version == 1)
{
doForVersion1();
}
else if (version == 2)
{
doForVersion2();
}
}
各機能で異なる分岐があるため、管理が難しくなります。問題を示すために、ドキュメントを生成する自動ツールがある場合、API が何であるかを理解できません。
2 つ目は、JSON オブジェクトにバインドされているクラスをどうするかです。小さな変更のために、これらのクラスをすべて複製する必要がありますか?
どうも。