JSON Schema および Open API specification(OAS) を使用してREST APIをドキュメント化する場合、どうすれば [ 〜#〜] uuid [〜#〜] プロパティ?
UUIDにはtype
が組み込まれていませんが、OpenAPI仕様では、
type: string
format: uuid
データ型 セクションから(エンファシスマイニング):
プリミティブには、オプションの修飾子プロパティ
format
があります。 OASは、いくつかの既知の形式を使用して、使用するデータタイプを詳細に定義します。ただし、ドキュメントのニーズをサポートするために、format
プロパティはオープンな文字列値のプロパティであり、任意の値を設定できます。"email"
、"uuid"
などの形式は、この仕様で定義されていない場合でも使用できます。
たとえば、Swagger Codegenはformat: uuid
をC#のSystem.Guid
またはJavaのJava.util.UUID
にマップします。 format: uuid
をサポートしていないツールは、type: string
として処理します。
私がこれまでに見つけた唯一の方法は、再利用可能なスキーマコンポーネントとしてRegExパターンを手動で指定することです。
openapi: 3.0.1
paths:
/transactions/:
post:
responses:
200:
content:
application/json:
schema:
type: object
properties:
transactionId:
$ref: '#/components/schemas/uuid'
components:
schemas:
uuid:
type: string
pattern: '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}'
しかし、私は間違いなく、より標準化されたアプローチを使用したいと思います。