Open6
cuelangでopenAPIを記述したい

参考

自分も試してみた

pathsの生成はソースコードを見る限り、対応していなさそう

input
#Sample: {
// user name
name: string
}
#Sample2: {
// user name
name: string
// Age of the person
Age?: number & < 130
}
#Sample3: {
string
}
output
{
"openapi": "3.0.0",
"info": {
"title": "Generated by cue.",
"version": "no version"
},
"paths": {},
"components": {
"schemas": {
"Sample": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"description": "user name",
"type": "string"
}
}
},
"Sample2": {
"type": "object",
"required": [
"name"
],
"properties": {
"name": {
"description": "user name",
"type": "string"
},
"Age": {
"description": "Age of the person",
"type": "number",
"maximum": 130,
"exclusiveMaximum": true
}
}
},
"Sample3": {
"type": "string"
}
}
}
}

このcuelangの記述量でtype: objectの定義や
description、required周り、maximumなどを定義できるのはかなり魅力的