天天看點

【Go語言實戰】(3) Gin + Gorm 簡單備忘錄 | 含接口文檔

目錄

Todo List 備忘錄

接口文檔

項目主要功能介紹

項目部分代碼介紹

項目主要依賴:

項目結構

簡要說明

項目運作

最後

此項目使用Gin+Gorm ,基于RESTful API實作的一個備忘錄。

規範是非常重要的,此項目非常适合小白入門學習web開發

Github開源連結

Todo List 接口文檔

密碼:0000

【Go語言實戰】(3) Gin + Gorm 簡單備忘錄 | 含接口文檔

使用者注冊登入 ( jwt-go鑒權 )

新增 / 删除 / 修改 / 查詢 備忘錄

存儲每條備忘錄的浏覽次數view

分頁功能

路由

//任務操作
    authed.GET("tasks", api.ListTasks)
    authed.POST("task", api.CreateTask)
    authed.GET("task/:id", api.ShowTask)
    authed.DELETE("task/:id", api.DeleteTask)
    authed.PUT("task/:id", api.UpdateTask)
    authed.POST("search",api.SearchTasks)      

服務

type ShowTaskService struct {
}
func (service *ShowTaskService) Show(id string) serializer.Response


type DeleteTaskService struct {
}
func (service *DeleteTaskService) Delete(id string) serializer.Response


type UpdateTaskService struct {
    ID            uint   `form:"id" json:"id"`
    Title         string `form:"title" json:"title" binding:"required,min=2,max=100"`
    Content       string `form:"content" json:"content" binding:"max=1000"`
    Status     int    `form:"status" json:"status"`   //0 待辦   1已完成
}
func (service *UpdateTaskService) Update(id string) serializer.Response


type SearchTaskService struct {
    Info string `form:"info" json:"info"`
}
func (service *SearchTaskService) Search() serializer.Response      

Golang V1.15

Gin

Gorm

mysql

redis

ini

jwt-go

TodoList/
├── api
├── cache
├── conf
├── middleware
├── model
├── pkg
│  ├── e
│  ├── logging
│  ├── util
├── routes
├── serializer
└── service      

api : 用于定義接口函數

cache : 放置redis緩存

conf : 用于存儲配置檔案

middleware : 應用中間件

model : 應用資料庫模型

pkg / e : 封裝錯誤碼

pkg / logging : 日志列印

pkg / util : 工具函數

routes : 路由邏輯處理

serializer : 将資料序列化為 json 的函數

service : 接口函數的實作

mysql是存儲主要資料

redis用來存儲備忘錄的浏覽次數

本項目使用Go Mod管理依賴。

下載下傳依賴

go mod tidy      

運作

go run main.go