Files
ai/main.go
2023-04-19 09:29:31 +08:00

91 lines
2.9 KiB
Go

package main
import (
"fmt"
"log"
"net/http"
"runtime"
"time"
"main/models"
)
func main() {
runtime.GOMAXPROCS(runtime.NumCPU())
http.HandleFunc("/api", func(w http.ResponseWriter, r *http.Request) {
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
wecome := "Welcome to the home page!"
w.Write([]byte(wecome))
})
http.HandleFunc("/api/images", func(w http.ResponseWriter, r *http.Request) {
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
var listview models.ListView
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Write(listview.ToJson())
})
http.HandleFunc("/api/models", func(w http.ResponseWriter, r *http.Request) {
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
var listview models.ListView
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Write(listview.ToJson())
})
http.HandleFunc("/api/tasks", func(w http.ResponseWriter, r *http.Request) {
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
// 查詢一組任務
// tasks, err := models.GetTasks()
// if err != nil {
// log.Println(err)
// return
// }
// fmt.Println(tasks)
// 將取得的任務裝載到ListView中
// listView := ListView{}
// for _, task := range tasks {
// listView.Tasks = append(listView.Tasks, task)
// }
var listview models.ListView
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Write(listview.ToJson())
})
http.HandleFunc("/api/users", func(w http.ResponseWriter, r *http.Request) {
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
var listview models.ListView
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Write(listview.ToJson())
})
http.HandleFunc("/api/tags", func(w http.ResponseWriter, r *http.Request) {
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
var listview models.ListView
w.Header().Set("Content-Type", "application/json; charset=utf-8")
w.Write(listview.ToJson())
})
log.Println("Web Server is running on http://localhost:8080")
http.ListenAndServe(":8080", nil)
}
func LogComponent(startTime int64, r *http.Request) {
ms := (time.Now().UnixNano() - startTime) / 1000000
color := "\033[1;32m%d\033[0m"
if ms > 800 {
color = "\033[1;31m%dms\033[0m" // 紅色加重
} else if ms > 500 {
color = "\033[1;33m%dms\033[0m" // 黃色加重
} else if ms > 300 {
color = "\033[1;32m%dms\033[0m" // 綠色加重
} else if ms > 200 {
color = "\033[1;34m%dms\033[0m" // 藍色加重
} else if ms > 100 {
color = "\033[1;35m%dms\033[0m" // 紫色加重
} else {
color = "\033[1;36m%dms\033[0m" // 黑色加重
}
endTime := fmt.Sprintf(color, ms)
method := fmt.Sprintf("\033[1;32m%s\033[0m", r.Method) // 綠色加重
url := fmt.Sprintf("\033[1;34m%s\033[0m", r.URL) // 藍色加重
log.Println(method, url, endTime)
}