Ayman Arif
Ayman Arif

Reputation: 1679

Empty Swagger specification is created in Go API

I am trying to use generate swagger spec from my API handler.

I have installed the go-swagger from go get:

go get -u github.com/go-swagger/go-swagger/cmd/swagger

See the project structure below:

Go

main.go uses handler definitions in products.go. (API works and is tested)

Swagger spec in product.go:

// Package classification of Product API.
//
// Documenting for Product API
//
//
//
// Schemes: http, https
// BasePath: /
// Version: 0.0.1
//
// Consumes:
// - application/json
//
// Produces:
// - application/json
//
// swagger:meta

Running the following command from main.go path:

GO111MODULE=off swagger generate spec -o ./swagger.yaml --scan-models

Response:

info: {}
paths: {}
swagger: "2.0"

Expected Response:

basePath: /
consumes:
- application/json
info:
  description: Documenting for Product API
  title: 
  version: 0.0.1
paths: {}
producrs:
- application/json
schemes:
- http
swagger: "2.0"

Upvotes: 4

Views: 1347

Answers (2)

Agustin Nigrelli
Agustin Nigrelli

Reputation: 55

In adition to @sssang comment. Make sure you leave no space between Documentation comment and the package definition.

// Documentation for Product API
//
//  Schemes: http
//  BasePath: /
//  Version: 1.0.0
//
//  Consumes:
//  - application/json
//
//  Produces:
//  - application/json
//
// swagger:meta
package handlers

[...rest of your code]

Upvotes: 1

sssang
sssang

Reputation: 11

I assume you are following Nic's MSA Go tutorial.

In case you haven't figure out the issue yet, you forgot to add a space for the contents. (lines between the first and last line)

Your documentation comment should be as below

// Documentation for Product API
//
//  Schemes: http
//  BasePath: /
//  Version: 1.0.0
//
//  Consumes:
//  - application/json
//
//  Produces:
//  - application/json
//
// swagger:meta

Upvotes: 1

Related Questions