Skip to content

Commit cf15a94

Browse files
committed
feat(swagger): support wrapCodeMsgMapping
1 parent bae8d4f commit cf15a94

File tree

3 files changed

+20
-4
lines changed

3 files changed

+20
-4
lines changed

tools/goctl/api/swagger/const.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,9 +57,11 @@ const (
5757
propertyKeyHost = "host"
5858
propertyKeyBasePath = "basePath"
5959
propertyKeyWrapCodeMsg = "wrapCodeMsg"
60+
propertyKeyWrapCodeMsgMapping = "wrapCodeMsgMapping"
6061
propertyKeyBizCodeEnumDescription = "bizCodeEnumDescription"
6162
)
6263

6364
const (
64-
defaultValueOfPropertyUseDefinition = false
65+
defaultValueOfPropertyUseDefinition = false
66+
defaultValueOfPropertyWrapCodeMsgMapping = `{"code":"code", "data":"data", "msg":"msg"}`
6567
)

tools/goctl/api/swagger/context.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import (
99
type Context struct {
1010
UseDefinitions bool
1111
WrapCodeMsg bool
12+
WrapCodeMsgMapping string
1213
BizCodeEnumDescription string
1314
}
1415

@@ -23,6 +24,7 @@ func contextFromApi(info spec.Info) Context {
2324
return Context{
2425
UseDefinitions: getBoolFromKVOrDefault(info.Properties, propertyKeyUseDefinitions, defaultValueOfPropertyUseDefinition),
2526
WrapCodeMsg: getBoolFromKVOrDefault(info.Properties, propertyKeyWrapCodeMsg, false),
27+
WrapCodeMsgMapping: getStringFromKVOrDefault(info.Properties, propertyKeyWrapCodeMsgMapping, defaultValueOfPropertyWrapCodeMsgMapping),
2628
BizCodeEnumDescription: getStringFromKVOrDefault(info.Properties, propertyKeyBizCodeEnumDescription, "business code"),
2729
}
2830
}

tools/goctl/api/swagger/swagger.go

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -259,12 +259,24 @@ func wrapCodeMsgProps(ctx Context, properties spec.SchemaProps, atDoc apiSpec.At
259259
if !ctx.WrapCodeMsg {
260260
return properties
261261
}
262+
263+
type WrapCodeMsgMapping struct {
264+
Code string `json:"code"`
265+
Data string `json:"data"`
266+
Msg string `json:"msg"`
267+
}
268+
269+
var wrapCodeMsgMapping WrapCodeMsgMapping
270+
if err := json.Unmarshal([]byte(ctx.WrapCodeMsgMapping), &wrapCodeMsgMapping); err != nil {
271+
return properties
272+
}
273+
262274
globalCodeDesc := ctx.BizCodeEnumDescription
263275
methodCodeDesc := getStringFromKVOrDefault(atDoc.Properties, propertyKeyBizCodeEnumDescription, globalCodeDesc)
264276
return spec.SchemaProps{
265277
Type: []string{swaggerTypeObject},
266278
Properties: spec.SchemaProperties{
267-
"code": {
279+
wrapCodeMsgMapping.Code: {
268280
SwaggerSchemaProps: spec.SwaggerSchemaProps{
269281
Example: 0,
270282
},
@@ -273,7 +285,7 @@ func wrapCodeMsgProps(ctx Context, properties spec.SchemaProps, atDoc apiSpec.At
273285
Description: methodCodeDesc,
274286
},
275287
},
276-
"msg": {
288+
wrapCodeMsgMapping.Msg: {
277289
SwaggerSchemaProps: spec.SwaggerSchemaProps{
278290
Example: "ok",
279291
},
@@ -282,7 +294,7 @@ func wrapCodeMsgProps(ctx Context, properties spec.SchemaProps, atDoc apiSpec.At
282294
Description: "business message",
283295
},
284296
},
285-
"data": {
297+
wrapCodeMsgMapping.Data: {
286298
SchemaProps: properties,
287299
},
288300
},

0 commit comments

Comments
 (0)