Go Todo REST API Example
A RESTful API example for simple todo application with Go
It is a just simple tutorial or example for making simple RESTful API with Go using gorilla/mux (A nice mux library) and gorm (An ORM for Go)
Installation & Run
# Download this project
go get github.com/mingrammer/go-todo-rest-api-example
Before running API server, you should set the database config with yours or set the your database config with my values on config.go
func GetConfig() *Config {
return &Config{
DB: &DBConfig{
Dialect: "mysql",
Username: "guest",
Password: "Guest0000!",
Name: "todoapp",
Charset: "utf8",
},
}
}
# Build and Run
cd go-todo-rest-api-example
go build
./go-todo-rest-api-example
# API Endpoint : http://127.0.0.1:3000
Structure
âââ app
â  âââ app.go
â  âââ handler // Our API core handlers
â  â  âââ common.go // Common response functions
â  â  âââ projects.go // APIs for Project model
â  â  âââ tasks.go // APIs for Task model
â  âââ model
â  âââ model.go // Models for our application
âââ config
â  âââ config.go // Configuration
âââ main.go
API
/projects
GET
: Get all projectsPOST
: Create a new project
/projects/:title
GET
: Get a projectPUT
: Update a projectDELETE
: Delete a project
/projects/:title/archive
PUT
: Archive a projectDELETE
: Restore a project
/projects/:title/tasks
GET
: Get all tasks of a projectPOST
: Create a new task in a project
/projects/:title/tasks/:id
GET
: Get a task of a projectPUT
: Update a task of a projectDELETE
: Delete a task of a project
/projects/:title/tasks/:id/complete
PUT
: Complete a task of a projectDELETE
: Undo a task of a project
Todo
- Support basic REST APIs.
- Support Authentication with user for securing the APIs.
- Make convenient wrappers for creating API handlers.
- Write the tests for all APIs.
- Organize the code with packages
- Make docs with GoDoc
- Building a deployment process