列表標準格式
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,3 +1,6 @@
|
||||
# Go
|
||||
data/
|
||||
|
||||
# ---> Python
|
||||
# Byte-compiled / optimized / DLL files
|
||||
__pycache__/
|
||||
|
31
main.go
31
main.go
@@ -6,22 +6,30 @@ import (
|
||||
"net/http"
|
||||
"runtime"
|
||||
"time"
|
||||
|
||||
"main/models"
|
||||
)
|
||||
|
||||
func main() {
|
||||
runtime.GOMAXPROCS(runtime.NumCPU())
|
||||
fmt.Println("Hello, World!")
|
||||
|
||||
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
|
||||
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) {
|
||||
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) {
|
||||
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) {
|
||||
defer LogComponent(time.Now().UnixNano(), r) // 最后打印日志
|
||||
@@ -39,17 +47,24 @@ func main() {
|
||||
// for _, task := range tasks {
|
||||
// listView.Tasks = append(listView.Tasks, task)
|
||||
// }
|
||||
|
||||
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("/users", func(w http.ResponseWriter, r *http.Request) {
|
||||
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) {
|
||||
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)
|
||||
}
|
||||
|
||||
|
@@ -16,7 +16,7 @@ type Image struct {
|
||||
|
||||
// 使用SQLite3初始化數據庫
|
||||
func init() {
|
||||
db, err := sql.Open("sqlite3", "image.db")
|
||||
db, err := sql.Open("sqlite3", "data/sqlite3/image.db")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
@@ -1,5 +1,10 @@
|
||||
package models
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
"log"
|
||||
)
|
||||
|
||||
type ListView struct {
|
||||
Code int `json:"code"`
|
||||
Page int `json:"page"`
|
||||
@@ -8,3 +13,20 @@ type ListView struct {
|
||||
Next bool `json:"next"`
|
||||
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初始化數據庫
|
||||
func init() {
|
||||
db, err := sql.Open("sqlite3", "model.db")
|
||||
db, err := sql.Open("sqlite3", "data/sqlite3/model.db")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
@@ -16,7 +16,7 @@ type Tag struct {
|
||||
|
||||
// 使用SQLite3初始化數據庫
|
||||
func init() {
|
||||
db, err := sql.Open("sqlite3", "tag.db")
|
||||
db, err := sql.Open("sqlite3", "data/sqlite3/tag.db")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
@@ -16,7 +16,7 @@ type Task struct {
|
||||
|
||||
// 使用SQLite3初始化數據庫
|
||||
func init() {
|
||||
db, err := sql.Open("sqlite3", "task.db")
|
||||
db, err := sql.Open("sqlite3", "data/sqlite3/task.db")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
@@ -17,7 +17,7 @@ type User struct {
|
||||
|
||||
// 使用SQLite3初始化數據庫
|
||||
func init() {
|
||||
db, err := sql.Open("sqlite3", "user.db")
|
||||
db, err := sql.Open("sqlite3", "data/sqlite3/user.db")
|
||||
if err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
Reference in New Issue
Block a user