easy-yapi icon indicating copy to clipboard operation
easy-yapi copied to clipboard

[Question] GET请求的枚举字段通过脚本自定义备注后如何忽略原来的备注信息?

Open benny-zhou opened this issue 1 year ago • 1 comments
trafficstars

springboot3构建的项目,通过.easy.api.config文件自定义param.doc属性的自定义备注

param.doc=groovy:```
if(!it.type().isExtend("cn.xxx.project.common.model.enums.ValueEnum")){
    return
}
try {
    def enumResolver = runtime.getBean("com.itangcent.intellij.jvm.standard.StandardPsiResolver")
    def docStr = "----------" + """\n"""
    // 填写字典编码  获取字段的Class上的doc的 @dictName
    def fieldClassDocDictName = it.type().doc("dictName")
    def fieldClassDoc = it.type().doc()
    def docDictName = fieldClassDocDictName != null ? fieldClassDocDictName : fieldClassDoc
    if(docDictName != null && docDictName != "" ){
        docStr = docStr + "字典名:" + docDictName + """\n"""
    }

    // 填写字典编码  获取字段的Class上的doc的 @dictCode
    def fieldClassDocDictCode = it.type().doc("dictCode")
    if(fieldClassDocDictCode != null){
        docStr = docStr + "字典编码:" + fieldClassDocDictCode + """\n"""
    }

    docStr = docStr + "枚举属性:" + """\n"""

    def fieldClassEnumFields = it.type().fields()
    fieldClassEnumFields.collect { item -> 
        //logger.info("item name "+ item.name())
        def itemResource = item.getResource()
        //logger.info("itemResource.class.name "+itemResource.class.name)
        if(itemResource.class.name.contains("Enum")){
           //logger.info("item getResource "+ itemResource)
           //logger.info("itemgetResource :"+ enumResolver.resolveEnumFields(0, item.getResource()))
           def enumItemValues = enumResolver.resolveEnumFields(0, item.getResource())
           docStr = docStr + "【"+enumItemValues["params"]["code"] +  "=" + enumItemValues["params"]["text"] + "】" +  """\n"""
        }
    }
    return docStr
} finally {
    localStorage.remove("__reentrant")
}

导出的结果如图: image

如何才能忽略下方自动凭接的内容呢?

TIKTOK :TIKTOK DIANPING :DIANPING KWAI :KWAI

benny-zhou avatar Aug 19 '24 02:08 benny-zhou