openAPI v2 (Swagger) だとprismでmockした時にbasepathは適用できない話

basepathという項目がopenAPI(v2)にはある。
https://swagger.io/docs/specification/2-0/api-host-and-base-path/

APIはよくv1、v2とパスパラメータでバージョン管理したりするが、
そうすると、すべてのAPIのURLにバージョン部分が含まれるため、冗長な記述になる。
そのため、"basePath"を使用してAPIのベースパスを共通化し、バージョン番号を1箇所にまとめることができる。

だが、stoplight/prismのバージョンによってopenAPI v2自体はサポートしているもののbasepathに対応できていないようだ。
https://github.com/stoplightio/prism#faqs

stoplight/prismとは

openAPIが定義されたファイルからモックサーバーを構築できる便利ツールのこと。
モックサーバーを利用することで、APIができていない段階では実際のAPIの開発状況の影響を受けることなく機能の実装やエラーハンドリングを行うことができるので必須だと思う。

結局どうしたのか

Next.jsのプロジェクトで遭遇したため、
APIリクエストを行うタイミングで環境変数(localやstagingなど)によって、
モックサーバーなのか実際のサーバーにリクエストを送るのか判断し、
バージョンのパスパラメータを付けたURLにするかそうでないかを実装しておいた。
少し面倒だが、環境ごとの設定を変更するだけで、リクエスト先となるサーバの切り替えが少し簡単になった。

しかし次は最初からOpenAPI v3でyamlファイルを作ることにする。
v3では、"basePath"の代わりに"servers"という項目を使用して、APIのベースURLを定義することができる。
定義例:

openapi: 3.0.0
servers:
  - url: https://example.com/v1
paths:
  /users:
    get: