yapi
yapi copied to clipboard
Feature Request: ADT(Algebraic Data Type) View
版本号
无
什么问题
当某个字段类型为对象,并且这些对象可以分类的时候,希望可以按照ADT的形式展示某个对象字段。 伪代码大概像这样,yapi视图上提供一个类似对象类型切换tab的能力:
type Message = TextMessage | ImageMessage | RichTextMessage
type TextMessage = {
type: MessageEnum.Text
id: string
text: string
}
type ImageMessage = {
type: MessageEnum.Image
id: string
url: string
mimeType: MimeType
}
type RichTextMessage = {
type: MessageEnum.RichText
id: string
richText: string
}
按照目前的yapi展示表达应该类似于这样
type Message = {
id: string
type: MessageEnum
url: string | null // 当type为MessageEnum.Image 时是合法值
text: string | null // 当type为MessageEnum.Text 时是合法值
mimeType: string | null // 当type为MessageEnum.RichText 时是合法值
richText: string | null // 当type为MessageEnum.RichText 时是合法值
}
当对象分类比较多,字段比较多的时候依赖于人为备注增加和人为过滤字段合法值,这样会增加使用者心智负担和阅读难度,也会增加使用错误的概率。 如果可以提供一个代数数据类型的视图可以很好的划分并且满足数据逻辑关系。
如何复现此问题
无
什么浏览器
无
什么系统(Linux, Windows, macOS)
无