列表標準格式
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +1,6 @@
|
|||||||
|
# Go
|
||||||
|
data/
|
||||||
|
|
||||||
# ---> Python
|
# ---> Python
|
||||||
# Byte-compiled / optimized / DLL files
|
# Byte-compiled / optimized / DLL files
|
||||||
__pycache__/
|
__pycache__/
|
||||||
|
31
main.go
31
main.go
@@ -6,22 +6,30 @@ import (
|
|||||||
"net/http"
|
"net/http"
|
||||||
"runtime"
|
"runtime"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
|
"main/models"
|
||||||
)
|
)
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
runtime.GOMAXPROCS(runtime.NumCPU())
|
runtime.GOMAXPROCS(runtime.NumCPU())
|
||||||
fmt.Println("Hello, World!")
|
|
||||||
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
||||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||||
fmt.Fprintf(w, "Hello, World!")
|
var listview models.ListView
|
||||||
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
|
w.Write(listview.ToJson())
|
||||||
})
|
})
|
||||||
http.HandleFunc("/images", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/images", func(w http.ResponseWriter, r *http.Request) {
|
||||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||||
fmt.Fprintf(w, "Hello, World!")
|
var listview models.ListView
|
||||||
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
|
w.Write(listview.ToJson())
|
||||||
})
|
})
|
||||||
http.HandleFunc("/models", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/models", func(w http.ResponseWriter, r *http.Request) {
|
||||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||||
fmt.Fprintf(w, "Hello, World!")
|
var listview models.ListView
|
||||||
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
|
w.Write(listview.ToJson())
|
||||||
})
|
})
|
||||||
http.HandleFunc("/tasks", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/tasks", func(w http.ResponseWriter, r *http.Request) {
|
||||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||||
@@ -39,17 +47,24 @@ func main() {
|
|||||||
// for _, task := range tasks {
|
// for _, task := range tasks {
|
||||||
// listView.Tasks = append(listView.Tasks, task)
|
// listView.Tasks = append(listView.Tasks, task)
|
||||||
// }
|
// }
|
||||||
|
var listview models.ListView
|
||||||
fmt.Fprintf(w, "Hello, World!")
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
|
w.Write(listview.ToJson())
|
||||||
})
|
})
|
||||||
http.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/users", func(w http.ResponseWriter, r *http.Request) {
|
||||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||||
fmt.Fprintf(w, "Hello, World!")
|
var listview models.ListView
|
||||||
|
w.Header().Set("Content-Type", "application/json; charset=utf-8")
|
||||||
|
w.Write(listview.ToJson())
|
||||||
})
|
})
|
||||||
http.HandleFunc("/tags", func(w http.ResponseWriter, r *http.Request) {
|
http.HandleFunc("/tags", func(w http.ResponseWriter, r *http.Request) {
|
||||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||||
fmt.Fprintf(w, "Hello, World!")
|
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)
|
http.ListenAndServe(":8080", nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -16,7 +16,7 @@ type Image struct {
|
|||||||
|
|
||||||
// 使用SQLite3初始化數據庫
|
// 使用SQLite3初始化數據庫
|
||||||
func init() {
|
func init() {
|
||||||
db, err := sql.Open("sqlite3", "image.db")
|
db, err := sql.Open("sqlite3", "data/sqlite3/image.db")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@@ -1,5 +1,10 @@
|
|||||||
package models
|
package models
|
||||||
|
|
||||||
|
import (
|
||||||
|
"encoding/json"
|
||||||
|
"log"
|
||||||
|
)
|
||||||
|
|
||||||
type ListView struct {
|
type ListView struct {
|
||||||
Code int `json:"code"`
|
Code int `json:"code"`
|
||||||
Page int `json:"page"`
|
Page int `json:"page"`
|
||||||
@@ -8,3 +13,20 @@ type ListView struct {
|
|||||||
Next bool `json:"next"`
|
Next bool `json:"next"`
|
||||||
List []interface{} `json:"list"`
|
List []interface{} `json:"list"`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 輸出JSON給瀏覽器
|
||||||
|
func (listview *ListView) ToJson() []byte {
|
||||||
|
|
||||||
|
// 即使list爲空,也要返回空的JSON數組
|
||||||
|
if listview.List == nil {
|
||||||
|
listview.List = make([]interface{}, 0)
|
||||||
|
}
|
||||||
|
|
||||||
|
// 輸出格式化的JSON
|
||||||
|
b, err := json.MarshalIndent(listview, "", " ")
|
||||||
|
if err != nil {
|
||||||
|
log.Println(err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
return b
|
||||||
|
}
|
||||||
|
@@ -16,7 +16,7 @@ type Model struct {
|
|||||||
|
|
||||||
// 使用SQLite3初始化數據庫
|
// 使用SQLite3初始化數據庫
|
||||||
func init() {
|
func init() {
|
||||||
db, err := sql.Open("sqlite3", "model.db")
|
db, err := sql.Open("sqlite3", "data/sqlite3/model.db")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@@ -16,7 +16,7 @@ type Tag struct {
|
|||||||
|
|
||||||
// 使用SQLite3初始化數據庫
|
// 使用SQLite3初始化數據庫
|
||||||
func init() {
|
func init() {
|
||||||
db, err := sql.Open("sqlite3", "tag.db")
|
db, err := sql.Open("sqlite3", "data/sqlite3/tag.db")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@@ -16,7 +16,7 @@ type Task struct {
|
|||||||
|
|
||||||
// 使用SQLite3初始化數據庫
|
// 使用SQLite3初始化數據庫
|
||||||
func init() {
|
func init() {
|
||||||
db, err := sql.Open("sqlite3", "task.db")
|
db, err := sql.Open("sqlite3", "data/sqlite3/task.db")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
@@ -17,7 +17,7 @@ type User struct {
|
|||||||
|
|
||||||
// 使用SQLite3初始化數據庫
|
// 使用SQLite3初始化數據庫
|
||||||
func init() {
|
func init() {
|
||||||
db, err := sql.Open("sqlite3", "user.db")
|
db, err := sql.Open("sqlite3", "data/sqlite3/user.db")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatal(err)
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user