74 lines
2.4 KiB
Go
74 lines
2.4 KiB
Go
/*
|
|
* Copyright (c) 2019 Alex aka mailoman <alex@webz.asia>
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*
|
|
* @author Alex aka mailoman <alex@webz.asia>
|
|
* @copyright Copyright (c) 2019 Alex aka mailoman <alex@webz.asia>
|
|
* @since 18.12.2019
|
|
*
|
|
*/
|
|
|
|
package main
|
|
|
|
import (
|
|
"github.com/labstack/echo/v4"
|
|
"github.com/labstack/echo/v4/middleware"
|
|
|
|
"github.com/echo-go/echoswagger"
|
|
)
|
|
|
|
func main() {
|
|
e := initServer().Echo()
|
|
e.Logger.Fatal(e.Start(":1323"))
|
|
}
|
|
|
|
func initServer() echoswagger.ApiRoot {
|
|
e := echo.New()
|
|
|
|
e.Use(middleware.Recover())
|
|
e.Use(middleware.Logger())
|
|
|
|
se := echoswagger.New(e, "doc/", &echoswagger.Info{
|
|
Title: "Swagger Petstore",
|
|
Description: "This is a sample server Petstore server. You can find out more about Swagger at [http://swagger.io](http://swagger.io) or on [irc.freenode.net, #swagger](http://swagger.io/irc/). For this sample, you can use the api key `special-key` to test the authorization filters.",
|
|
Version: "1.0.0",
|
|
TermsOfService: "http://swagger.io/terms/",
|
|
Contact: &echoswagger.Contact{
|
|
Email: "apiteam@swagger.io",
|
|
},
|
|
License: &echoswagger.License{
|
|
Name: "Apache 2.0",
|
|
URL: "http://www.apache.org/licenses/LICENSE-2.0.html",
|
|
},
|
|
})
|
|
|
|
se.AddSecurityOAuth2("petstore_auth", "", echoswagger.OAuth2FlowImplicit,
|
|
"http://petstore.swagger.io/oauth/dialog", "", map[string]string{
|
|
"write:pets": "modify pets in your account",
|
|
"read:pets": "read your pets",
|
|
},
|
|
).AddSecurityAPIKey("api_key", "", echoswagger.SecurityInHeader)
|
|
|
|
se.SetExternalDocs("Find out more about Swagger", "http://swagger.io").
|
|
SetResponseContentType("application/xml", "application/json").
|
|
SetUI(echoswagger.UISetting{DetachSpec: true, HideTop: true}).
|
|
SetScheme("https", "http")
|
|
|
|
PetController{}.Init(se.Group("pet", "/pet"))
|
|
StoreController{}.Init(se.Group("store", "/store"))
|
|
UserController{}.Init(se.Group("user", "/user"))
|
|
|
|
return se
|
|
}
|