1
|
|
|
package main |
2
|
|
|
|
3
|
|
|
import ( |
4
|
|
|
"fmt" |
5
|
|
|
"log" |
6
|
|
|
"os" |
7
|
|
|
|
8
|
|
|
"github.com/rfinochi/golang-workshop-todo/pkg/common" |
9
|
|
|
) |
10
|
|
|
|
11
|
|
|
// @title To-Do Sample API |
12
|
|
|
// @version 1.0 |
13
|
|
|
// @description Sample To-Do API written in Golang for Go Programming Language Workshop. |
14
|
|
|
|
15
|
|
|
// @contact.name Go Programming Language Workshop |
16
|
|
|
// @contact.url https://golang-workshop.io |
17
|
|
|
// @contact.email [email protected] |
18
|
|
|
|
19
|
|
|
// @license.name MIT License |
20
|
|
|
// @license.url https://opensource.org/licenses/mit-license.php |
21
|
|
|
|
22
|
|
|
// @host todo.golang-workshop.io |
23
|
|
|
// @BasePath /api |
24
|
|
|
func main() { |
25
|
|
|
app := &application{ |
26
|
|
|
infoLog: log.New(os.Stdout, "INFO\t", log.Ldate|log.Ltime), |
27
|
|
|
errorLog: log.New(os.Stderr, "ERROR\t", log.Ldate|log.Ltime|log.Lshortfile), |
28
|
|
|
} |
29
|
|
|
app.initModels() |
30
|
|
|
app.initRouter() |
31
|
|
|
app.addAPIRoutes() |
32
|
|
|
app.addSwaggerRoutes() |
33
|
|
|
|
34
|
|
|
app.infoLog.Printf("Env %s '%s'", common.PortEnvVarName, os.Getenv(common.PortEnvVarName)) |
35
|
|
|
app.infoLog.Printf("Env %s '%s'", common.PortEnvVarName2, os.Getenv(common.PortEnvVarName2)) |
36
|
|
|
app.infoLog.Printf("Env %s '%s'", common.APITokenEnvVarName, os.Getenv(common.APITokenEnvVarName)) |
37
|
|
|
app.infoLog.Printf("Env %s '%s'", common.RepositoryMongoURIEnvVarName, os.Getenv(common.RepositoryMongoURIEnvVarName)) |
38
|
|
|
app.infoLog.Printf("Env %s '%s'", common.APITokenEnvVarName, os.Getenv(common.APITokenEnvVarName)) |
39
|
|
|
|
40
|
|
|
port := os.Getenv(common.PortEnvVarName) |
41
|
|
|
if port == "" { |
42
|
|
|
port = os.Getenv(common.PortEnvVarName2) |
43
|
|
|
if port == "" { |
44
|
|
|
port = common.PortDefault |
45
|
|
|
app.infoLog.Printf("Starting server on port %s", port) |
46
|
|
|
} |
47
|
|
|
} |
48
|
|
|
|
49
|
|
|
app.router.Run(fmt.Sprintf(":%s", port)) |
50
|
|
|
} |
51
|
|
|
|