SpringBaseUrlの決定


なぜBaseUrlが必要なのか


APIを使用した経験がある場合は、通常
/api/v2/..../... このようにurlが見えます.
ここでは/api/v 2がbaseUrlであることがわかります.
これは、apiをバージョン別に管理できることを意味します.
どうしてこんなにバージョンをマークするのですか.
/api/v 1を使用して作成したサービスも正常に動作する必要があります.
APIの仕様が大きく変更された場合、/api/v 2を使用して再提供する必要がある場合があります.
もう1つの理由は、クライアントと同じドメインを使用する場合、baseUrlを指定することでAPIにアクセスできるためです.

BaseUrlを決めましょう


BaseUrlを選ぶ方法はいろいろあります

属性として指定します。

// application.properties
spring.data.rest.base-path=/api/v2
propertiesファイルに指定できます.
あるいはconfigファイルでpropertyを設定してもいいです.
これで指定できます
問題は、すべてのファイルがUrlをロックしていることです.
私が望んでいる形ではありません.

Annotationの使用

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@RestController
@RequestMapping("/api/v1/*")
public @interface Version1RestController { }
@Version1RestController
class UserController {
    @GetMapping("/users/{id}")
    public User getUser(@PathVariable("id") Long id) {
    	User user = ...;
        return user;
    }
}
これにより、これらの技術を必要なコントローラに適用することができます.
仕様を変更したバージョン2のコントローラが現れたら、
新しい@Version2RestControllerを適用すればいいです.
これはVersion 1とVersion 2が一緒にサービスを提供できることを意味します!

に感銘を与える


最初はbaseUrlを全然気にしなかった.
プロジェクトをしているうちにだんだん注意しなければならない部分が生まれてきました.
勉強はいいと思います.
Urlについては、実際のオープンAPIを提供するサービスを参照します.