Lors de l'utilisation de Schéma JSON et Spécification API ouverte (OAS) pour documenter une API REST, comment définir la UUID propriété?
Il n'y a pas de type
intégré pour UUID, mais la spécification OpenAPI suggère d'utiliser
type: string
format: uuid
De la section Types de données (accentuation du mien):
Les primitives ont une propriété de modification facultative:
format
. OAS utilise plusieurs formats connus pour définir en détail le type de données utilisé. Cependant, pour prendre en charge les besoins de documentation, la propriétéformat
est une propriété de chaîne ouverte et peut avoir n'importe quelle valeur. Formats tels que"email"
,"uuid"
, et ainsi de suite, PEUT être utilisé même s'il n'est pas défini par cette spécification.
Par exemple, Swagger Codegen mappe format: uuid
à System.Guid
en C # ou Java.util.UUID
en Java. Outils qui ne prennent pas en charge format: uuid
le traitera comme _ type: string
.
La seule façon que j'ai trouvée jusqu'à présent est de spécifier manuellement le modèle RegEx en tant que composant de schéma réutilisable:
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}'
Mais, je voudrais certainement utiliser une approche plus standardisée.