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を提供するサービスを参照します.
Reference
この問題について(SpringBaseUrlの決定), 我々は、より多くの情報をここで見つけました https://velog.io/@boo105/Spring-BaseUrl-을-정해보자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol