説明
標準の数値 format は、スキーマの type と意味が一致している必要があります。int32 と int64 は integer に、float と double は number に使用します。format は省略でき、独自の形式も指定できます。
想定される影響
型と形式が矛盾している場合や、利用するツールが形式をサポートしていない場合は、SDKのモデル、検証、シリアライズの結果が想定と異なる可能性があります。
対処方法
実際のデータに合う type と標準の format の組み合わせを選んでください。独自の形式が必要な場合は、コード生成ツールとバリデーターが一貫して扱えることを確認してください。
例
次のOpenAPI 3.0の抜粋では、id の形式を integer に対応する int64 に、percentage の形式を number に対応する float に修正しています。
変更前
json
{
"openapi": "3.0.0",
"components": {
"schemas": {
"MyObject": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "double"
},
"percentage": {
"type": "number",
"format": "int32"
}
}
}
}
}
}
変更後
json
{
"openapi": "3.0.0",
"components": {
"schemas": {
"MyObject": {
"type": "object",
"properties": {
"id": {
"type": "integer",
"format": "int64"
},
"percentage": {
"type": "number",
"format": "float"
}
}
}
}
}
}