内部での処理内容については Qiita の ここ にまとめてあります。
simple-webapp/
├── db
│ └── sample.db
├── handler
│ ├── auth.go
│ └── handler.go
├── model
│ ├── db.go
│ ├── todo.go
│ └── user.go
├── public
│ ├── assets
│ │ └── js
│ │ ├── login.js
│ │ ├── signup.js
│ │ └── todoList.js
│ ├── index.html
│ ├── login.html
│ ├── signup.html
│ └── todos.html
├── README.md
├── go.mod
├── go.sum
├── main.go
└── router.go
$ go run main.go router.go
GET /
GET /signup
GET /login
GET /todos
POST /signup
以下の値をJSON形式で送信する
name | value |
---|---|
name | Bob |
password | bob-pass |
登録に成功すると以下のようなJSON形式のデータが返る
{
"id":1,
"name":"Bob",
"password":""
}
POST /login
以下の値をJSON形式で送信する
name | value |
---|---|
name | Bob |
password | bob-pass |
認証が成功すると以下のような形式でJWTが返る
{
"token":"eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjEsIm5hbWUiOiJCb2IiLCJleHAiOjE1NTQ4ODA0NDh9._Z5Aq7_bOWAz99HXrVPbiWwF3euijMvG__f8p9sWXu8"
}
以下はJWTをリクエストに含めないとアクセスできない (認証済である必要がある)
GET /api/todos
以下のようなJSON形式のTodo一覧が返る
[
{
"uid":1,
"id":1,
"name":"first todo",
"completed":true
},
{
"uid":1,
"id":2,
"name":"second todo",
"completed":false
}
]
POST /api/todos
以下の値をJSON形式で送信する
name | value |
---|---|
name | third todo |
登録に成功した場合、以下のようなJSON形式登録されたTodoが返る
{
"uid":1,
"id":3,
"name":"third todo",
"completed":false
}
DELETE /api/todos/:id
PUT /api/todos/:id/completed
- Go言語 (https://golang.org/)
- Echo (https://echo.labstack.com/)
- GORM (http://gorm.io/)
- SQLite (https://www.sqlite.org/index.html)
- JWT (https://jwt.io/)