Back to Go Swagger

operation

docs/reference/annotations/operation.md

0.33.22.2 KB
Original Source

swagger:operation

A swagger:operation annotation links a path to a method. This operation gets a unique id, which is used in various places as method name. One such usage is in method names for client generation for example.

Because there are many routers available, this tool does not try to parse the paths you provided to your routing library of choice. So you have to specify your path pattern yourself in valid swagger (YAML) syntax.

<!--more-->
Syntax
go
swagger:operation [method] [path pattern] [?tag1 tag2 tag3] [operation id]
Properties

Any valid Swagger 2.0 YAML Operation property is valid. Make sure your indentation is consistent and correct, as it won't parse correctly otherwise.

You can find all the properties at https://github.com/OAI/OpenAPI-Specification/blob/old-v3.2.0-dev/versions/2.0.md#operationObject

Note that if you specify the tags, summary, description or operationId as part of the YAML spec, you will override the summary, descriptions, tags or operationId, specified as part of the regular swagger syntax above.

Also note that you need to start your YAML spec with a triple dash ---.

Example
go
// ServeAPI serves the API for this record store
func ServeAPI(host, basePath string, schemes []string) (err error) {
	// swagger:operation GET /pets getPet
	//
	// Returns all pets from the system that the user has access to
	//
	// Could be any pet
	//
	// ---
	// produces:
	// - application/json
	// - application/xml
	// - text/xml
	// - text/html
	// parameters:
	// - name: tags
	//   in: query
	//   description: tags to filter by
	//   required: false
	//   type: array
	//   items:
	//     type: string
	//   collectionFormat: csv
	// - name: limit
	//   in: query
	//   description: maximum number of results to return
	//   required: false
	//   type: integer
	//   format: int32
	// responses:
	//   '200':
	//     description: pet response
	//     schema:
	//       type: array
	//       items:
	//         "$ref": "#/definitions/pet"
	//   default:
	//     description: unexpected error
	//     schema:
	//       "$ref": "#/definitions/errorModel"
	mountItem("GET", basePath+"/pets", nil)

    return
}
Result
yaml