Add swagger annotations to apiserver

Signed-off-by: Mihaela Balutoiu <mbalutoiu@cloudbasesolutions.com>
This commit is contained in:
Ionut Balutoiu 2023-06-30 19:02:20 +03:00 committed by Mihaela Balutoiu
parent b506df20da
commit d122f293cf
4 changed files with 98 additions and 0 deletions

View file

@ -26,6 +26,20 @@ import (
"github.com/gorilla/mux"
)
// swagger:route POST /repositories repositories Create
//
// Create repository with the parameters given.
//
// Parameters:
// + name: Body
// description: Parameters used when creating the repository.
// type: CreateRepoParams
// in: body
// required: true
//
// Responses:
// 200: Repository
// default: APIErrorResponse
func (a *APIController) CreateRepoHandler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
@ -48,6 +62,13 @@ func (a *APIController) CreateRepoHandler(w http.ResponseWriter, r *http.Request
}
}
// swagger:route GET /repositories repositories List
//
// List repositories.
//
// Responses:
// 200: Repositories
// default: APIErrorResponse
func (a *APIController) ListReposHandler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
@ -64,6 +85,20 @@ func (a *APIController) ListReposHandler(w http.ResponseWriter, r *http.Request)
}
}
// swagger:route GET /repositories/{repoID} repositories Get
//
// Get repository by ID.
//
// Parameters:
// + name: repoID
// description: ID of the repository to fetch.
// type: string
// in: path
// required: true
//
// Responses:
// 200: Repository
// default: APIErrorResponse
func (a *APIController) GetRepoByIDHandler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
@ -93,6 +128,19 @@ func (a *APIController) GetRepoByIDHandler(w http.ResponseWriter, r *http.Reques
}
}
// swagger:route DELETE /repositories/{repoID} repositories Delete
//
// Delete repository by ID.
//
// Parameters:
// + name: repoID
// description: ID of the repository to delete.
// type: string
// in: path
// required: true
//
// Responses:
// default: APIErrorResponse
func (a *APIController) DeleteRepoHandler(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()

View file

@ -12,8 +12,22 @@
// License for the specific language governing permissions and limitations
// under the License.
// Package routers Garm API.
//
// The Garm API generated using go-swagger.
//
// BasePath: /api/v1
// Version: 1.0.0
// License: Apache 2.0 https://www.apache.org/licenses/LICENSE-2.0
//
// swagger:meta
package routers
//go:generate swagger generate spec --input=../swagger-models.yaml --output=../swagger.yaml --include="routers|controllers"
//go:generate swagger validate ../swagger.yaml
//go:generate rm -rf ../../client
//go:generate swagger generate client --target=../../ --spec=../swagger.yaml
import (
"io"
"net/http"

View file

@ -0,0 +1,33 @@
# NOTE: The purpose of these definitions is to reuse the existing golang
# types from GARM packages.
definitions:
Repositories:
type: array
x-go-type:
type: Repositories
import:
package: github.com/cloudbase/garm/params
alias: garm_params
items:
$ref: '#/definitions/Repository'
Repository:
type: object
x-go-type:
type: Repository
import:
package: github.com/cloudbase/garm/params
alias: garm_params
CreateRepoParams:
type: object
x-go-type:
type: CreateRepoParams
import:
package: github.com/cloudbase/garm/params
alias: garm_params
APIErrorResponse:
type: object
x-go-type:
type: APIErrorResponse
import:
package: github.com/cloudbase/garm/apiserver/params
alias: apiserver_params