1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83
|
-- type.yaml --
openapi: 3.0.0
info:
title: Users schema
version: v1beta1
contact:
name: The CUE Authors
url: https://cuelang.org
components:
schemas:
User:
description: "A User uses something."
type: object
properties:
id:
type: integer
name:
type: string
address:
$ref: "#/components/schemas/PhoneNumber"
PhoneNumber:
description: "The number to dial."
type: string
-- out.cue --
// Users schema
package foo
info: {
title: *"Users schema" | string
version: *"v1beta1" | string
contact: {
name: "The CUE Authors"
url: "https://cuelang.org"
}
}
// The number to dial.
#PhoneNumber: string
// A User uses something.
#User: {
id?: int
name?: string
address?: #PhoneNumber
...
}
-- out/TestGenerateOpenAPI/out.json --
{
"openapi": "3.0.0",
"info": {
"title": "Users schema",
"version": "v1beta1",
"contact": {
"name": "The CUE Authors",
"url": "https://cuelang.org"
}
},
"paths": {},
"components": {
"schemas": {
"PhoneNumber": {
"description": "The number to dial.",
"type": "string"
},
"User": {
"description": "A User uses something.",
"type": "object",
"properties": {
"id": {
"type": "integer"
},
"name": {
"type": "string"
},
"address": {
"$ref": "#/components/schemas/PhoneNumber"
}
}
}
}
}
}
|