-
GET/lists
: 목록 받기 -
POST/list
: 새로운 목록 생성 -
GET/list/{list_id}
: 목록 이름 및 아이템 받기 -
PUT/list/{list_id}
: 목록 이름 변경 -
DELETE/list/{list_id}
: 목록 삭제 -
POST/list/{list_id}/item
: 새로운 아이템 추가 -
PUT/list/{list_id}/item/{item_id}
: 아이템 변경 -
DELETE/list/{list_id}/item/{item_id}
: 아이템 삭제
Prepare the database server
-
Software
- Docker
- Insomnia or Postman
-
Pull
postgres
docker imagesdocker pull postgres
-
Create
tododb
containerdocker run -d --name tododb \ -e POSTGRES_PASSWORD=password \ -p 5432:5432 \ postgres
-
Create SQL tables
docker cp ./assets/schema.sql tododb:/docker-entrypoint-initdb.d/schema.sql docker exec -u postgres tododb psql postgres -U postgres -f docker-entrypoint-initdb.d/schema.sql
-
Connection URL
postgres://postgres:password@localhost:5432/postgres?sslmode=disable
Simple connect to database and serve
- Postgres 접속 후
localhost:8080
에서 Hello, World! 확인 - API 결과를 받기 전 단계에 status code를 받아 그대로 전달하고 custom logging 출력 함수 작성
Apply improved error handler
- 반복해서 사용할 error handler를 범용적으로 사용할 수 있도록 변경
- panic, recover를 사용해서 error message 출력
Method POST/list
-
POST/list
작성 -
Request 할 때 body에 json 입력할 것
{ "name": "Gopher" }
-
생성된 todo list의 목록을 확인할 수 있음
Method GET/list/{list_id}
GET/list/{list_id}
작성- todo list와 items를 LEFT JOIN 한 후 해당하는 list ID의 목록을 출력
Method POST/list/{list_id}/item
-
POST/list/{list_id}/item
작성 -
해당 list ID에 item 생성
{ "text": "Check the progress", "done": false }
Method PUT/list/{list_id}/item/{item_id}
-
PUT/list/{list_id}/item/{item_id}
작성 -
해당 list ID의 특정 item 내용 수정
{ "text": "Check the progress", "done": true }