# swagger-advanced # resolve the parameters from ApiImplicitParam resolve_api_implicit_param=``` def desc = map.value def allowableValues = map.allowableValues if(tool.notNullOrBlank(allowableValues)){ desc = desc + "\n允许的值:" + allowableValues } def paramType = map.paramType ?: "query" def required = map.required?:true if(paramType==""||paramType=="query"){ api.setParam(map.name,map.defaultValue,required,desc) }else if(paramType=="form"){ api.setFormParam(map.name,map.defaultValue,required,desc) }else if(paramType=="path"){ api.setPathParam(map.name,map.defaultValue,desc) }else if(paramType=="header"){ api.setHeader(map.name,map.defaultValue,required,desc) } ``` # extract map from ApiImplicitParam export.after[@io.swagger.annotations.ApiImplicitParam]=groovy:``` def map = it.annMap("io.swagger.annotations.ApiImplicitParam") ${resolve_api_implicit_param} ``` # extract maps from ApiImplicitParams export.after[@io.swagger.annotations.ApiImplicitParams]=groovy:``` def maps = it.annMap("io.swagger.annotations.ApiImplicitParams") for(map in maps.value){ ${resolve_api_implicit_param} } ``` # Resolve the response from `APIResponse` into the API description resolve_swagger2_api_response=``` def desc = "\\n\\n***response code***:"+map.code+"\\n\\n" desc += map.message+"\\n\\n" def response = map.response if(response!=null){ if(response in String){ response = helper.findClass(response) } if(response!=null){ desc += "响应内容:\\n```json\\n" + response.toJson(true,true) + "\\n```\\n" } } api.appendDesc(desc) ``` # Resolve `APIResponse` into the API description export.after[@io.swagger.annotations.ApiResponse]=groovy:``` def map = it.annMap("io.swagger.annotations.ApiResponse") ${resolve_swagger2_api_response} ``` # Resolve `APIResponses` into the API description export.after[@io.swagger.annotations.ApiResponses]=groovy:``` def maps = it.annMap("io.swagger.annotations.ApiResponses") for(map in maps.value){ ${resolve_swagger2_api_response} } ``` # Resolve one `APIResponse` into the API description export.after[@io.swagger.annotations.ApiResponse]=groovy:``` def map = it.annMap("io.swagger.annotations.ApiResponse") api.setResponseCode(map.code?:200) api.appendResponseBodyDesc(map.message) def responseHeaders = map.responseHeaders if(responseHeaders!=null){ for(responseHeader in responseHeaders) { api.setResponseHeader(responseHeader.name,"",true,responseHeader.description) } } def response = map.response if(response!=null){ if(!(response in String)){ response = response.toString() } if(response!=null){ api.setResponseBodyClass(response) } } ```