請求書・見積書をクラウドでかんたん作成。販売管理まで効率化できる「board」

OpenAPI定義におけるdecimal型の定義方法の変更について

boardのAPIドキュメントはOpenAPIベースのドキュメントになっており、OpenAPIの定義ファイル(JSONファイル)にも対応していますが、この中でdecimal型の定義方法を変更しましたので、お知らせいたします。

なお、本変更の対象は、APIドキュメントおよびOpenAPIの定義ファイルのみです。APIそのものの仕様に変更はありません。

対象バージョン

OpenAPI定義の1.9.0から本変更が適用されています。

変更内容

変更前

type: number
format: decimal

変更後

type: string
format: decimal
pattern: 項目に応じて正規表現で定義

変更の背景

金額などの小数を含む値は、内部的にはdecimal型で管理されています。ただし、APIのリクエストおよびレスポンスで利用するJSONにはdecimal型が存在しないため、これまでOpenAPIの定義ではnumber型として表現していました。

一方で、実際のAPIレスポンスでは、JSONの数値を浮動小数点数として扱う環境においては、number型では精度の問題が発生する可能性があるため、これらの値をstring型として返却していました。

これにより、OpenAPIの定義と実際のAPIレスポンスの型が一致していない状態となり、OpenAPIの定義を利用してコードを自動生成した場合は、生成された型と実際のレスポンスの型が一致せず、型チェックエラー等が発生する可能性がありました。

この状況に対応するため、今回の変更では、実際のAPIレスポンスに合わせて、OpenAPIの定義においてもdecimal値をstring型として表現することとしました。

なお、リクエスト時のJSONについては、引き続きnumber型・string型のいずれも受け付けることができます。ただし、レスポンスとリクエストで共通のスキーマ定義を利用しているため、OpenAPIの定義上は、リクエスト側もstring型として定義されています。

この変更で影響を受ける可能性があるケース

OpenAPIの定義データを元に、ジェネレーターでプログラムを生成している場合、定義データの型が変更されたことにより、型の不一致でエラーとなる可能性があります。本変更の対象となるOpenAPI定義のバージョン1.9.0以降に差し替える場合はご注意ください。

一覧に戻る