$ mv .env.template .env
$ vim .env # Fill your value
$ mv .env.template .env.docker
$ vim .env.docker # Fill your value
$ docker-compose up --build
src
โโโ db // ๐ขDB ใขใใซ
โ โโโ init_todo_db.rs
โ โโโ init_user_db.rs
โ โโโ ram_zatsu_todo_db.rs
โ โโโ ram_zatsu_user_db.rs
โโโ db.rs
โโโ domain // ๐ขใจใณใใฃใใฃใๆ้่ฆใใธใในใซใผใซใใซใใปใซๅใใใใฎ
โ โโโ todo.rs
โ โโโ user.rs
โโโ domain.rs
โโโ frameworkใ// ๐ขAPIใใณใใฉ
โ โโโ api_server.rs
โโโ framework.rs
โโโ interface_adapter // ๐ขMVCใไฟๆใใฆใใใฌใคใคใผ
โ โโโ controller // ๐ข ใชใฏใจในใใๅใๅใใใฌในใใณในใ่ฟใใใใฎ็ชๅฃ
โ โ โโโ web_todo.rs
โ โ โโโ web_user.rs
โ โโโ controller.rs
โ โโโ presenter // ๐ข Output DataใใView Modelใงๅฎ็พฉใใใฆใใๅใซๅคๆใใใใใฎๅฆ็
โ โ โโโ todo.rs
โ โ โโโ user.rs
โ โโโ presenter.rs
โ โโโ viewmodel // ๐ข ใฌในใใณในใฎๅ
โ โ โโโ todo.rs
โ โ โโโ user.rs
โ โโโ viewmodel.rs
โโโ interface_adapter.rs
โโโ lib.rs
โโโ main.rs
โโโ usecase // ๐ขใขใใชใฑใผใทใงใณๅบๆใฎใใธใในใซใผใซ
โ โโโ data_access // ๐ขDBใฎๅใusecaseใงไฝฟ็จใใๅใจๅใใใ
โ โ โโโ todo.rs
โ โ โโโ user.rs
โ โโโ data_access.rs
โ โโโ input_boundary // ๐ข interface_adapterโusecaseใธใฎ็ดๆฅไพๅญใ้ฒใใใใฎIF(IFๅ้ขใฎๆณๅ)
โ โ โโโ todo.rs
โ โ โโโ user.rs
โ โโโ input_boundary.rs
โ โโโ interactor // ๐ขใใธใในใญใธใใฏๅฎ่ฃ
ใฎๅฎ็พฉ
โ โ โโโ todo.rs
โ โ โโโ user.rs
โ โโโ interactor.rs
โ โโโ output_data // ๐ขใฆใผในใฑใผในๅฑคๅบๅๅคใฎๅฎ็พฉ
โ โ โโโ todo.rs
โ โ โโโ user.rs
โ โโโ output_data.rs
โโโ usecase.rs // ๐ขใขใใชใฑใผใทใงใณๅบๆใฎใใธใในใซใผใซ
curl -XGET localhost:8081/todo
curl -XPOST localhost:8081/todo -H "Content-Type: application/json" -d '{"title" : "็ถพ้ทน", "content": "้ธใฐใใใฎใฏ", "user_id": "1" }'
curl -XPUT localhost:8081/todo/title -H "Content-Type: application/json" -d '{"id" : "1", "title": "็ฝๅฅ็พ่ถ" }'
curl -XPUT localhost:8081/todo/content -H "Content-Type: application/json" -d '{"id" : "1", "content": "Selected..." }'
curl -XDELETE localhost:8081/todo -H "Content-Type: application/json" -d '{"id" : "1"}'
curl -XGET localhost:8081/users
curl -XPOST localhost:8081/users -H "Content-Type: application/json" -d '{"name" : "็ถพ้ทน" }'
curl -XPUT localhost:8081/users -H "Content-Type: application/json" -d '{"name" : "ไผๅณ่ก้" }'
curl -XDELETE localhost:8081/users -H "Content-Type: application/json" -d '{"id" : "1" }'
Ref: https://zenn.dev/htlsne/articles/rust-clean-architecture https://github.com/hiterm/bookshelf-api https://lucid.app/lucidchart/62854681-180e-4860-9d75-9c878674ba6d/edit?viewport_loc=-275%2C368%2C2917%2C1395%2C0_0&invitationId=inv_78d72729-6626-4966-a05d-d5e67e6ca173