1
0
mirror of https://github.com/raseels-repos/golang-saas-starter-kit.git synced 2025-08-08 22:36:41 +02:00

forked swaggo/swag and added caching to reduce build times

This commit is contained in:
Lee Brown
2019-08-07 20:19:09 -08:00
parent 195754432c
commit b387ccb827
13 changed files with 90 additions and 292 deletions

View File

@ -19,7 +19,7 @@ RUN GO111MODULE=off go get gopkg.in/go-playground/validator.v9 && \
GO111MODULE=off go get golang.org/x/crypto/nacl/secretbox
# Install swag with go modules enabled.
RUN GO111MODULE=on go get -u github.com/swaggo/swag/cmd/swag
RUN GO111MODULE=on go get -u github.com/geeks-accelerator/swag/cmd/swag
# Change dir to project base.
WORKDIR $GOPATH/src/gitlab.com/geeks-accelerator/oss/saas-starter-kit
@ -34,6 +34,7 @@ FROM build_base_golang AS builder
ARG service
ARG commit_ref=-
ARG swagInit
# Copy shared packages.
COPY internal ./internal
@ -50,7 +51,8 @@ WORKDIR ./cmd/${service}
# Update the API documentation.
# Disabled for the moment as it takes forever to run, rely on manual execution.
#RUN swag init
RUN if [ "$swagInit" != "" ] swag init ; fi
RUN CGO_ENABLED=0 GOOS=linux go build -ldflags "-X main.build=${commit_ref}" -a -installsuffix nocgo -o /gosrv .

View File

@ -26,7 +26,7 @@ initial admin user must first be created. The initial admin user can easily be c
## API Documentation
Documentation for this API service is automatically generated using [swag](https://github.com/swaggo/swag). Once this
Documentation for this API service is automatically generated using [swag](https://github.com/geeks-accelerator/swag). Once this
web-api service is running, it can be accessed at /docs
http://127.0.0.1:3001/docs/
@ -227,14 +227,14 @@ curl -H "Authorization: Bearer ${TOKEN}" http://127.0.0.1:3001/v1/users
## Update Swagger API Documentation
Documentation is generated using [swag](https://github.com/swaggo/swag)
Documentation is generated using [swag](https://github.com/geeks-accelerator/swag)
If you are developing this web-api service and you want your changes reflected in the API documentation, you will need
to download Swag and then run it each time you want the API documentation to be updated.
Download Swag with this command:
```bash
go get -u github.com/swaggo/swag/cmd/swag
go get -u github.com/geeks-accelerator/swag/cmd/swag
```
Run `swag init` in the service's root folder which contains the main.go file. This will parse your comments and generate the required files (docs folder and docs/docs.go).

View File

@ -1,15 +1,16 @@
// GENERATED BY THE COMMAND ABOVE; DO NOT EDIT
// This file was generated by swaggo/swag at
// 2019-08-06 18:48:15.927954 -0800 AKDT m=+412.149396591
// This file was generated by geeks-accelerator/swag at
// 2019-08-07 19:21:01.42416 -0800 AKDT m=+430.010377170
package docs
import (
"bytes"
"encoding/json"
"strings"
"github.com/alecthomas/template"
"github.com/swaggo/swag"
"github.com/geeks-accelerator/swag"
)
var doc = `{
@ -17,7 +18,7 @@ var doc = `{
"swagger": "2.0",
"info": {
"description": "{{.Description}}",
"title": "SaaS Example API",
"title": "{{.Title}}",
"contact": {},
"license": {
"name": "Apache 2.0",
@ -63,21 +64,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -115,28 +113,24 @@ var doc = `{
"200": {
"description": "OK",
"schema": {
"type": "object",
"$ref": "#/definitions/account.AccountResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -178,21 +172,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -262,21 +253,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -317,35 +305,30 @@ var doc = `{
"201": {
"description": "Created",
"schema": {
"type": "object",
"$ref": "#/definitions/project.ProjectResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -385,21 +368,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -441,21 +421,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -493,28 +470,24 @@ var doc = `{
"200": {
"description": "OK",
"schema": {
"type": "object",
"$ref": "#/definitions/project.ProjectResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -551,21 +524,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -601,21 +571,18 @@ var doc = `{
"201": {
"description": "Created",
"schema": {
"type": "object",
"$ref": "#/definitions/signup.SignupResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -685,21 +652,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -738,35 +702,30 @@ var doc = `{
"201": {
"description": "Created",
"schema": {
"type": "object",
"$ref": "#/definitions/user_account.UserAccountResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -803,21 +762,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -857,21 +813,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -913,21 +866,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -965,28 +915,24 @@ var doc = `{
"200": {
"description": "OK",
"schema": {
"type": "object",
"$ref": "#/definitions/user_account.UserAccountResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1056,14 +1002,12 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1102,28 +1046,24 @@ var doc = `{
"201": {
"description": "Created",
"schema": {
"type": "object",
"$ref": "#/definitions/user.UserResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1163,21 +1103,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1219,21 +1156,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1275,21 +1209,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1328,21 +1259,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1380,28 +1308,24 @@ var doc = `{
"200": {
"description": "OK",
"schema": {
"type": "object",
"$ref": "#/definitions/user.UserResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1438,21 +1362,18 @@ var doc = `{
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -2211,11 +2132,21 @@ type swaggerInfo struct {
}
// SwaggerInfo holds exported Swagger Info so clients can modify it
var SwaggerInfo = swaggerInfo{Schemes: []string{}}
var SwaggerInfo = swaggerInfo{
Version: "",
Host: "",
BasePath: "",
Schemes: []string{},
Title: "SaaS Example API",
Description: "",
}
type s struct{}
func (s *s) ReadDoc() string {
sInfo := SwaggerInfo
sInfo.Description = strings.Replace(sInfo.Description, "\n", "\\n", -1)
t, err := template.New("swagger_info").Funcs(template.FuncMap{
"marshal": func(v interface{}) string {
a, _ := json.Marshal(v)
@ -2227,7 +2158,7 @@ func (s *s) ReadDoc() string {
}
var tpl bytes.Buffer
if err := t.Execute(&tpl, SwaggerInfo); err != nil {
if err := t.Execute(&tpl, sInfo); err != nil {
return doc
}

View File

@ -1,17 +1,13 @@
{
"swagger": "2.0",
"info": {
"description": "{{.Description}}",
"title": "SaaS Example API",
"contact": {},
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"version": "{{.Version}}"
}
},
"host": "{{.Host}}",
"basePath": "{{.BasePath}}",
"paths": {
"/accounts": {
"patch": {
@ -48,21 +44,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -100,28 +93,24 @@
"200": {
"description": "OK",
"schema": {
"type": "object",
"$ref": "#/definitions/account.AccountResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -163,21 +152,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -247,21 +233,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -302,35 +285,30 @@
"201": {
"description": "Created",
"schema": {
"type": "object",
"$ref": "#/definitions/project.ProjectResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -370,21 +348,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -426,21 +401,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -478,28 +450,24 @@
"200": {
"description": "OK",
"schema": {
"type": "object",
"$ref": "#/definitions/project.ProjectResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -536,21 +504,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -586,21 +551,18 @@
"201": {
"description": "Created",
"schema": {
"type": "object",
"$ref": "#/definitions/signup.SignupResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -670,21 +632,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -723,35 +682,30 @@
"201": {
"description": "Created",
"schema": {
"type": "object",
"$ref": "#/definitions/user_account.UserAccountResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -788,21 +742,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -842,21 +793,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -898,21 +846,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -950,28 +895,24 @@
"200": {
"description": "OK",
"schema": {
"type": "object",
"$ref": "#/definitions/user_account.UserAccountResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1041,14 +982,12 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1087,28 +1026,24 @@
"201": {
"description": "Created",
"schema": {
"type": "object",
"$ref": "#/definitions/user.UserResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1148,21 +1083,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1204,21 +1136,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1260,21 +1189,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1313,21 +1239,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"401": {
"description": "Unauthorized",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1365,28 +1288,24 @@
"200": {
"description": "OK",
"schema": {
"type": "object",
"$ref": "#/definitions/user.UserResponse"
}
},
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"404": {
"description": "Not Found",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}
@ -1423,21 +1342,18 @@
"400": {
"description": "Bad Request",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"403": {
"description": "Forbidden",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
},
"500": {
"description": "Internal Server Error",
"schema": {
"type": "object",
"$ref": "#/definitions/weberror.ErrorResponse"
}
}

View File

@ -1,4 +1,3 @@
basePath: '{{.BasePath}}'
definitions:
account.AccountResponse:
properties:
@ -518,15 +517,12 @@ definitions:
value:
type: object
type: object
host: '{{.Host}}'
info:
contact: {}
description: '{{.Description}}'
license:
name: Apache 2.0
url: http://www.apache.org/licenses/LICENSE-2.0.html
title: SaaS Example API
version: '{{.Version}}'
paths:
/accounts:
patch:
@ -549,17 +545,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Update account by ID
@ -583,22 +576,18 @@ paths:
description: OK
schema:
$ref: '#/definitions/account.AccountResponse'
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"404":
description: Not Found
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Get account by ID
@ -626,17 +615,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"401":
description: Unauthorized
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- BasicAuth: []
summary: Token handles a request to authenticate a user.
@ -681,17 +667,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: List projects
@ -718,17 +701,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Update project by ID
@ -753,27 +733,22 @@ paths:
description: Created
schema:
$ref: '#/definitions/project.ProjectResponse'
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"404":
description: Not Found
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Create new project.
@ -798,17 +773,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Delete project by ID
@ -831,22 +803,18 @@ paths:
description: OK
schema:
$ref: '#/definitions/project.ProjectResponse'
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"404":
description: Not Found
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Get project by ID.
@ -873,17 +841,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Archive project by ID
@ -909,17 +874,14 @@ paths:
description: Created
schema:
$ref: '#/definitions/signup.SignupResponse'
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
summary: Signup handles new account creation.
tags:
- signup
@ -942,17 +904,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Delete user account by user ID and account ID
@ -996,17 +955,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: List user accounts
@ -1032,17 +988,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Update user account by user ID and account ID
@ -1067,27 +1020,22 @@ paths:
description: Created
schema:
$ref: '#/definitions/user_account.UserAccountResponse'
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"404":
description: Not Found
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Create new user account.
@ -1111,22 +1059,18 @@ paths:
description: OK
schema:
$ref: '#/definitions/user_account.UserAccountResponse'
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"404":
description: Not Found
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Get user account by ID
@ -1153,17 +1097,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Archive user account by user ID and account ID
@ -1209,12 +1150,10 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: List users
@ -1240,17 +1179,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Update user by ID
@ -1275,22 +1211,18 @@ paths:
description: Created
schema:
$ref: '#/definitions/user.UserResponse'
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Create new user.
@ -1315,17 +1247,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Delete user by ID
@ -1348,22 +1277,18 @@ paths:
description: OK
schema:
$ref: '#/definitions/user.UserResponse'
type: object
"400":
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"404":
description: Not Found
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Get user by ID
@ -1390,17 +1315,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Archive user by ID
@ -1427,17 +1349,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"403":
description: Forbidden
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Update user password by ID
@ -1462,17 +1381,14 @@ paths:
description: Bad Request
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"401":
description: Unauthorized
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
"500":
description: Internal Server Error
schema:
$ref: '#/definitions/weberror.ErrorResponse'
type: object
security:
- OAuth2Password: []
summary: Switch account.