diff --git a/definition/definition.go b/definition/definition.go index f807e283..d2a5b44d 100644 --- a/definition/definition.go +++ b/definition/definition.go @@ -206,6 +206,8 @@ type Result struct { // Definition defines an API handler. type Definition struct { + // OperationID is Unique string used to identify the operation. The OperationID MUST be unique among all operations described in the API. + OperationID string // Method is definition method. Method Method // Consumes indicates how many content types the handler can consume. diff --git a/service/rest/builder.go b/service/rest/builder.go index eca99a18..204c9273 100644 --- a/service/rest/builder.go +++ b/service/rest/builder.go @@ -131,6 +131,7 @@ func (b *builder) addDescriptor(prefix string, consumes []string, produces []str func (b *builder) copyDefinition(d *definition.Definition, consumes []string, produces []string, tags []string) *definition.Definition { newOne := &definition.Definition{ Method: d.Method, + OperationID: d.OperationID, Summary: d.Summary, Function: d.Function, Description: d.Description, diff --git a/utils/api/definitions.go b/utils/api/definitions.go index 49c01ba1..de127513 100644 --- a/utils/api/definitions.go +++ b/utils/api/definitions.go @@ -60,6 +60,8 @@ type Definition struct { HTTPMethod string // HTTPCode is http success code. HTTPCode int + // OperationID is Unique string used to identify the operation. The OperationID MUST be unique among all operations described in the API. + OperationID string // Summary is a brief of this definition. Summary string // Description describes the API handler. @@ -99,6 +101,7 @@ func NewDefinition(tc *TypeContainer, d *definition.Definition, apiStyle service Method: d.Method, HTTPMethod: service.HTTPMethodFor(d.Method), HTTPCode: code, + OperationID: d.OperationID, Summary: d.Summary, Description: d.Description, Tags: d.Tags, diff --git a/utils/generators/swagger/generator.go b/utils/generators/swagger/generator.go index bc5c76b6..5a69eca1 100644 --- a/utils/generators/swagger/generator.go +++ b/utils/generators/swagger/generator.go @@ -433,6 +433,7 @@ func (g *Generator) operationFor(def *api.Definition) *spec.Operation { operation.Produces = append(operation.Produces, p) } } + operation.ID = def.OperationID operation.Summary = def.Summary if operation.Summary == "" { // Use function name as API summary.