从持久类和序列类生成 Swagger 规范

这篇博客分享了如何从持久类和序列类生成Swagger规范,提供了示例代码,包括Person和Address类的定义,并展示了如何利用这些代码自动生成对应的Swagger YAML定义。主要涉及对象映射、属性定义和引用处理。
摘要由CSDN通过智能技术生成

最近,我需要从持久类和序列类生成一个 Swagger 规范,所以我发布了我的代码(它并不完整 - 你仍然需要处理应用程序的细节,但这是一个开始)。 代码在这里。

假设你有下面的类:

Class REST.Test.Person Extends %Persistent
{

/// 人的名字。
Property Name As %String [ Required ];

/// 人的社会安全号。 这通过模式匹配进行验证。
Property SSN As %String [ Required ];

/// 人的出生日期。
Property DOB As %Date;

/// 人的家庭地址。 这里使用一个嵌入对象。
Property Home As Address;

/// 人的办公室地址。 这里使用一个嵌入对象。
Property Office As Address;

/// 人的配偶。 这是对另一个持久对象的引用。
Property Spouse As Person;

/// 代表人喜欢的颜色的字符串集合。
Property FavoriteColors As list Of %String;

/// 代表人喜欢的颜色的字符串集合。
Property FavoriteNumbers As array Of %Integer;

/// 人的年龄。<br>
/// 这是一个经过计算的字段,其值来自于 <property>DOB</property>。
Property Age As %Integer;

}

Class REST.Test.Address Extends %SerialObject
{

/// 街道地址。
Property Street As %String(MAXLEN = 80);

/// 城市名称。
Property City As %String(MAXLEN = 80);

/// 2 个字母的州名缩写。
Property State As %String(MAXLEN = 2);

/// 5 位美国 地区改进计划 (ZIP) 编码。
Property Zip As %String(MAXLEN = 5);
}

你可以通过以下代码自动生成此 Swagger 定义:

REST.Test.Person:
   type: "object"
   properties:
     Age:
       type: "integer"
     DOB:
       type: "string"
     FavoriteColors:
       type: "array"
       items:
         type: "string"
     FavoriteNumbers:
       type: "object"
     Home:
       $ref: "#/definitions/REST.Test.Address"
     Name:
       type: "string"
     Office:
       $ref: "#/definitions/REST.Test.Address"
     SSN:
       type: "string"
     Spouse:
       $ref: "#/definitions/REST.Test.Person"
 REST.Test.Address:
   type: "object"
   properties:
     City:
       type: "string"
     State:
       type: "string"
     Street:
       type: "string"
     Zip:
       type: "string"

主方法:Utils.YAML:GenerateClasses

测试运行:do ##class(Utils.YAML).Test()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值