๊ณผ์ ๋ช
2. Mock API Controller ๊ตฌํ
๊ณผ์ ์ค๋ช
2. ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ค๊ณํ์ฌ ์๋ตํ๋ ์คํ๋ง๋ถํธ ์ปจํธ๋กค๋ฌ๋ฅผ ์์ฑํ๊ณ ์์ค์ฝ๋๋ฅผ ์ ๋ก๋ํ์์ค.
๊ณผ์ ์์ธ : ๊ณผ์ ๋ฅผ ์งํํ ๋, ์ ๋ ํด์ผํ ๊ฒ
- ์ ์ฒด API ์ฃผ์ ์ค๊ณ๊ฐ RestAPI ๋ง๊ฒ ์ค๊ณ๋์๋๊ฐ? (์๋ฅผ ๋ค์ด ๋ฐฐํฌ๋ ์๋ฒ๋ POST์ GET์ผ๋ก๋ง ๊ตฌํ๋์๋๋ฐ, ํ์๋ค์ PUT๊ณผ DELETE๋ ๋ฐฐ์ธ ์์ ์ด๋ผ ์ด๋ถ๋ถ์ด ๋ฐ์๋์๊ณ , ์ฃผ์๊ฐ RestAPI์ ๋ง๊ฒ ์ค๊ณ๋์๋์ง)
- ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ค๊ณํ์ฌ Mock API๋ฅผ ์ ๊ตฌํํ์๋๊ฐ? (์๋ฅผ ๋ค์ด DB์ฐ๊ฒฐ์์ด ์ปจํธ๋กค๋ฌ๋ง ๋ง๋ค์ด์ ๋ฐฐํฌ๋ ์๋ฒ์ ์๋ต๊ณผ ๋์ผํ ํํ๋ก ๋ฐ์ดํฐ๊ฐ ์๋ต๋๋์ง ์ฌ๋ถ)
1. ์ ์ฒด API ์ฃผ์ ์ค๊ณ
01) API ์ฃผ์๋ฅผ ์ค๊ณํ์ฌ README์ ๋ด์ฉ์ ์์ฑํ์์ค
์ ์ ์ฌํญ : ์ฃผ์๊ฐ RestAPI์ ๋ง๊ฒ ์ค๊ณํ ๊ฒ
๐ Restful API ์ค๊ณ ์์
1. URI๋ ๋์ฌ๋ณด๋ค๋ ๋ช ์ฌ๋ฅผ, ๋๋ฌธ์๋ณด๋ค๋ ์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ์ผ ํ๋ค.
Bad Example http://khj93.com/Running/
Good Example http://khj93.com/run/
2. ๋ง์ง๋ง์ ์ฌ๋์ (/)๋ฅผ ํฌํจํ์ง ์๋๋ค.
Bad Example http://khj93.com/test/
Good Example http://khj93.com/test
3. ์ธ๋๋ฐ ๋์ ํ์ดํฐ์ ์ฌ์ฉํ๋ค.
Bad Example http://khj93.com/test_blog
Good Example http://khj93.com/test-blog
4. ํ์ผํ์ฅ์๋ URI์ ํฌํจํ์ง ์๋๋ค.
Bad Example http://khj93.com/photo.jpg
Good Example http://khj93.com/photo
5. ํ์๋ฅผ ํฌํจํ์ง ์๋๋ค.
Bad Example http://khj93.com/delete-post/1
Good Example http://khj93.com/post/1
(์ถํ Rest API์ ๋ํด ์ ๋ฆฌํด ์ฌ๋ ค์ผ ํ ๊ฒ ๊ฐ๋ค. ๋ชจ๋ฅด๋ ๊ฒ ๋๋ฌด ๋ง๋ค ....)
1. User
1. ๋ก๊ทธ์ธ / ๋ก๊ทธ์์
- POST
- http://localhost:8080/login
- Request Body โ { "email":"ssar@nate.com", "password":"meta1234!" }
2. ํ์๊ฐ์ - ์ด๋ฉ์ผ ์ค๋ณต์ฒดํฌ
- POST
- http://localhost:8080/duplicate-check
- Request Body โ { "email":"ssarnate.com" }
check > duplicate-check๋ก ๋ณ๊ฒฝํ์๋๋ฐ, ์ด ๋์ check๋ 'ํ์'์ธ ๊ฒ ๊ฐ์๋ฐ ์ฌ์ฉํด๋ ๊ด์ฐฎ์ ๊ฒ์ผ๊น ?
3. ํ์๊ฐ์
- POST
- http://localhost:8080/join
- Request Body โ { "username":"mata", "email":"meta@nate.com", "password":"meta1234!" }
* login๊ณผ join์ ๊ฒฝ์ฐ ๊ด์ต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋จ์ด์ด๊ณ Restful API์ ์๋ฒฝํ ๋ถํฉํ์ง๋ ์์ง๋ง,
์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ(๋ค๋ฅธ ์ธ์ด๋ก ๋์ฒด, ๊ด๋ จ์ฑ ๊ฐ์)๋ณด๋ค ์ฌ์ฉํ๋ ๊ฒฝ์ฐ(์ดํด๊ฐ ์ฌ์)์ ์ด๋์ด ๋ ํฌ๊ธฐ ๋๋ฌธ์ ์์ ํ์ง ์์๋ค.
2. Product
1. ์ ์ฒด ์ํ ๋ชฉ๋ก ์กฐํ
- GET
- http://localhost:8080/products
2. ๊ฐ๋ณ ์ํ ์์ธ ์กฐํ
- GET
- http://localhost:8080/products/id
์ด๋์ id๋ Product table์ PK id๋ฅผ ๋ปํ๋ค.
3. Cart
1. ์ฅ๋ฐ๊ตฌ๋ ์กฐํ
- GET
- http://localhost:8080/carts
- Request Header
- โ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg
2. ์ฅ๋ฐ๊ตฌ๋ ๋ด๊ธฐ
- POST
- http://localhost:8080/carts
- Request Header
- โ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg
- Request Body โ [ { "optionId":1, "quantity":5 }, { "optionId":2, "quantity":5 } ]
carts/add x : (์ค๊ณ์์น 5) ํ์๋ฅผ ํฌํจํ์ง ์๋๋ค.
3. ์ฃผ๋ฌธํ๊ธฐ - ์ฅ๋ฐ๊ตฌ๋ ์์
- PUT
- http://localhost:8080/carts
- Request Header โ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg
- Request Body โ [ { "cartId":4, "quantity":10 }, { "cartId":5, "quantity":10 } ]
POST > PUT : ์์ ์ ๋ํ ๋ด์ฉ์ด๋ฏ๋ก, PUT ์ฌ์ฉ
update x : (์ค๊ณ์์น 5) ํ์๋ฅผ ํฌํจํ์ง ์๋๋ค.
4. Order
1. ์ฃผ๋ฌธ insert
- POST
- http://localhost:8080/orders
- Request Header โ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg
save x : (์ค๊ณ์์น 5) ํ์๋ฅผ ํฌํจํ์ง ์๋๋ค.
2. ์ฃผ๋ฌธ ์๋ฃ
- GET
- http://localhost:8080/orders/id
- Request Header โ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg
'๐ช kakaotech campus' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์นดํ ์ผ | [STEP2 clone coding] 3์ฃผ์ฐจ ๊ณผ์ (0) | 2023.07.14 |
---|---|
์นดํ ์ผ | [STEP2 clone coding] 2์ฃผ์ฐจ ๊ณผ์ - (2) (0) | 2023.07.07 |
์นดํ ์ผ | [STEP2 clone coding] 1์ฃผ์ฐจ ๊ณผ์ - (3) (0) | 2023.06.30 |
์นดํ ์ผ | [STEP2 clone coding] 1์ฃผ์ฐจ ๊ณผ์ - (2) (0) | 2023.06.29 |
์นดํ ์ผ | [STEP2 clone coding] 1์ฃผ์ฐจ ๊ณผ์ - (1) (0) | 2023.06.28 |
๊ณผ์ ๋ช
2. Mock API Controller ๊ตฌํ
๊ณผ์ ์ค๋ช
2. ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ค๊ณํ์ฌ ์๋ตํ๋ ์คํ๋ง๋ถํธ ์ปจํธ๋กค๋ฌ๋ฅผ ์์ฑํ๊ณ ์์ค์ฝ๋๋ฅผ ์ ๋ก๋ํ์์ค.
๊ณผ์ ์์ธ : ๊ณผ์ ๋ฅผ ์งํํ ๋, ์ ๋ ํด์ผํ ๊ฒ
- ์ ์ฒด API ์ฃผ์ ์ค๊ณ๊ฐ RestAPI ๋ง๊ฒ ์ค๊ณ๋์๋๊ฐ? (์๋ฅผ ๋ค์ด ๋ฐฐํฌ๋ ์๋ฒ๋ POST์ GET์ผ๋ก๋ง ๊ตฌํ๋์๋๋ฐ, ํ์๋ค์ PUT๊ณผ DELETE๋ ๋ฐฐ์ธ ์์ ์ด๋ผ ์ด๋ถ๋ถ์ด ๋ฐ์๋์๊ณ , ์ฃผ์๊ฐ RestAPI์ ๋ง๊ฒ ์ค๊ณ๋์๋์ง)
- ๊ฐ์ง ๋ฐ์ดํฐ๋ฅผ ์ค๊ณํ์ฌ Mock API๋ฅผ ์ ๊ตฌํํ์๋๊ฐ? (์๋ฅผ ๋ค์ด DB์ฐ๊ฒฐ์์ด ์ปจํธ๋กค๋ฌ๋ง ๋ง๋ค์ด์ ๋ฐฐํฌ๋ ์๋ฒ์ ์๋ต๊ณผ ๋์ผํ ํํ๋ก ๋ฐ์ดํฐ๊ฐ ์๋ต๋๋์ง ์ฌ๋ถ)
1. ์ ์ฒด API ์ฃผ์ ์ค๊ณ
01) API ์ฃผ์๋ฅผ ์ค๊ณํ์ฌ README์ ๋ด์ฉ์ ์์ฑํ์์ค
์ ์ ์ฌํญ : ์ฃผ์๊ฐ RestAPI์ ๋ง๊ฒ ์ค๊ณํ ๊ฒ
๐ Restful API ์ค๊ณ ์์
1. URI๋ ๋์ฌ๋ณด๋ค๋ ๋ช ์ฌ๋ฅผ, ๋๋ฌธ์๋ณด๋ค๋ ์๋ฌธ์๋ฅผ ์ฌ์ฉํ์ฌ์ผ ํ๋ค.
Bad Example http://khj93.com/Running/
Good Example http://khj93.com/run/
2. ๋ง์ง๋ง์ ์ฌ๋์ (/)๋ฅผ ํฌํจํ์ง ์๋๋ค.
Bad Example http://khj93.com/test/
Good Example http://khj93.com/test
3. ์ธ๋๋ฐ ๋์ ํ์ดํฐ์ ์ฌ์ฉํ๋ค.
Bad Example http://khj93.com/test_blog
Good Example http://khj93.com/test-blog
4. ํ์ผํ์ฅ์๋ URI์ ํฌํจํ์ง ์๋๋ค.
Bad Example http://khj93.com/photo.jpg
Good Example http://khj93.com/photo
5. ํ์๋ฅผ ํฌํจํ์ง ์๋๋ค.
Bad Example http://khj93.com/delete-post/1
Good Example http://khj93.com/post/1
(์ถํ Rest API์ ๋ํด ์ ๋ฆฌํด ์ฌ๋ ค์ผ ํ ๊ฒ ๊ฐ๋ค. ๋ชจ๋ฅด๋ ๊ฒ ๋๋ฌด ๋ง๋ค ....)
1. User
1. ๋ก๊ทธ์ธ / ๋ก๊ทธ์์
- POST
- http://localhost:8080/login
- Request Body โ { "email":"ssar@nate.com", "password":"meta1234!" }
2. ํ์๊ฐ์ - ์ด๋ฉ์ผ ์ค๋ณต์ฒดํฌ
- POST
- http://localhost:8080/duplicate-check
- Request Body โ { "email":"ssarnate.com" }
check > duplicate-check๋ก ๋ณ๊ฒฝํ์๋๋ฐ, ์ด ๋์ check๋ 'ํ์'์ธ ๊ฒ ๊ฐ์๋ฐ ์ฌ์ฉํด๋ ๊ด์ฐฎ์ ๊ฒ์ผ๊น ?
3. ํ์๊ฐ์
- POST
- http://localhost:8080/join
- Request Body โ { "username":"mata", "email":"meta@nate.com", "password":"meta1234!" }
* login๊ณผ join์ ๊ฒฝ์ฐ ๊ด์ต์ ์ผ๋ก ์ฌ์ฉ๋๋ ๋จ์ด์ด๊ณ Restful API์ ์๋ฒฝํ ๋ถํฉํ์ง๋ ์์ง๋ง,
์ฌ์ฉํ์ง ์๋ ๊ฒฝ์ฐ(๋ค๋ฅธ ์ธ์ด๋ก ๋์ฒด, ๊ด๋ จ์ฑ ๊ฐ์)๋ณด๋ค ์ฌ์ฉํ๋ ๊ฒฝ์ฐ(์ดํด๊ฐ ์ฌ์)์ ์ด๋์ด ๋ ํฌ๊ธฐ ๋๋ฌธ์ ์์ ํ์ง ์์๋ค.
2. Product
1. ์ ์ฒด ์ํ ๋ชฉ๋ก ์กฐํ
- GET
- http://localhost:8080/products
2. ๊ฐ๋ณ ์ํ ์์ธ ์กฐํ
- GET
- http://localhost:8080/products/id
์ด๋์ id๋ Product table์ PK id๋ฅผ ๋ปํ๋ค.
3. Cart
1. ์ฅ๋ฐ๊ตฌ๋ ์กฐํ
- GET
- http://localhost:8080/carts
- Request Header
- โ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg
2. ์ฅ๋ฐ๊ตฌ๋ ๋ด๊ธฐ
- POST
- http://localhost:8080/carts
- Request Header
- โ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg
- Request Body โ [ { "optionId":1, "quantity":5 }, { "optionId":2, "quantity":5 } ]
carts/add x : (์ค๊ณ์์น 5) ํ์๋ฅผ ํฌํจํ์ง ์๋๋ค.
3. ์ฃผ๋ฌธํ๊ธฐ - ์ฅ๋ฐ๊ตฌ๋ ์์
- PUT
- http://localhost:8080/carts
- Request Header โ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg
- Request Body โ [ { "cartId":4, "quantity":10 }, { "cartId":5, "quantity":10 } ]
POST > PUT : ์์ ์ ๋ํ ๋ด์ฉ์ด๋ฏ๋ก, PUT ์ฌ์ฉ
update x : (์ค๊ณ์์น 5) ํ์๋ฅผ ํฌํจํ์ง ์๋๋ค.
4. Order
1. ์ฃผ๋ฌธ insert
- POST
- http://localhost:8080/orders
- Request Header โ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg
save x : (์ค๊ณ์์น 5) ํ์๋ฅผ ํฌํจํ์ง ์๋๋ค.
2. ์ฃผ๋ฌธ ์๋ฃ
- GET
- http://localhost:8080/orders/id
- Request Header โ Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJzc2FyQG5hdGUuY29tIiwicm9sZSI6Il JPTEVfVVNFUiIsImlkIjoxLCJleHAiOjE2ODcwNTM5MzV9.fXlD0NZQXYYfPHV8rokRJTM86nhS869L Z1KIGi7_qvPOcVbXgvyZLKvnlLxomIiS3YFnQRLzXAJ2G41yI_AmGg
'๐ช kakaotech campus' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์นดํ ์ผ | [STEP2 clone coding] 3์ฃผ์ฐจ ๊ณผ์ (0) | 2023.07.14 |
---|---|
์นดํ ์ผ | [STEP2 clone coding] 2์ฃผ์ฐจ ๊ณผ์ - (2) (0) | 2023.07.07 |
์นดํ ์ผ | [STEP2 clone coding] 1์ฃผ์ฐจ ๊ณผ์ - (3) (0) | 2023.06.30 |
์นดํ ์ผ | [STEP2 clone coding] 1์ฃผ์ฐจ ๊ณผ์ - (2) (0) | 2023.06.29 |
์นดํ ์ผ | [STEP2 clone coding] 1์ฃผ์ฐจ ๊ณผ์ - (1) (0) | 2023.06.28 |