Postman์ด๋? (API ํ ์คํธ ํด) ๐ฅธ
1. Postman ์ ์
Postman์ API ๊ฐ๋ฐ๊ณผ ํ
์คํธ๋ฅผ ์ฝ๊ฒ ํ ์ ์๋๋ก ๋์์ฃผ๋ API ํด๋ผ์ด์ธํธ ๋๊ตฌ์ด๋ค
์ด๊ฑธ ํ ๋๋ก API์ ์์ฒญ(Request)๊ณผ ์๋ต(Response)์ ์์ฝ๊ฒ ํ์ธํ ์ ์์
๐ก Postman์ ์ฌ์ฉํ๋ ์ด์
โ RESTful API, GraphQL API ๋ฑ ๋ค์ํ API ํ ์คํธ๊ฐ ๊ฐ๋ฅํจ
โ HTTP ์์ฒญ์ ์ฝ๊ฒ ๋ง๋ค๊ณ , ์๋ต์ ํ์ธํ ์ ์์
โ API ์์ฒญ์ ์๋ํํ๊ณ ํ ์คํธ๋ฅผ ์ํํ ์ ์์
โ ์ฌ๋ฌ ๊ฐ์ API ์์ฒญ์ Collection์ผ๋ก ๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํจ
โ ๊ฐ๋ฐ์, ํ ์คํธ ์์ง๋์ด, DevOps๊ฐ ํ์ ํ๋ ๋ฐ ์ ์ฉํจ
2. Postman ์ค์น ๋ฐฉ๋ฒ
โ ์ค์น ๋ฐฉ๋ฒ
- Postman ๊ณต์ ์น์ฌ์ดํธ ์ ์
- ์ด์์ฒด์ ์ ๋ง๋ ๋ฒ์ ๋ค์ด๋ก๋ ํ ์ค์น
- ํ์๊ฐ์ ํ ๋ก๊ทธ์ธ (์ ํ ์ฌํญ)
3. Postman ๊ธฐ๋ณธ ์ฉ์ด ๋ฐ ๊ธฐ๋ฅ
โ ์ฃผ์ ์ฉ์ด
์ฉ์ด | ์ค๋ช |
Request (์์ฒญ) | ์๋ฒ์ ๋ณด๋ด๋ API ์์ฒญ (GET, POST, PUT, DELETE ๋ฑ) |
Response (์๋ต) | ์๋ฒ๊ฐ ํด๋ผ์ด์ธํธ ์์ฒญ์ ๋ํด ๋ฐํํ๋ ๋ฐ์ดํฐ |
Collection | ์ฌ๋ฌ ๊ฐ์ API ์์ฒญ์ ๋ชจ์๋์ ๊ทธ๋ฃน |
Environment | API ํ ์คํธ๋ฅผ ์ํ ๋ณ์ ์ ์ฅ ๊ณต๊ฐ (์: `{{base_url}}`) |
Authorization | API ์ธ์ฆ์ ์ํ ๋ก๊ทธ์ธ ํ ํฐ, API Key ๋ฑ |
Headers | ์์ฒญ๊ณผ ์๋ต์์ ์ฌ์ฉ๋๋ ๋ฉํ๋ฐ์ดํฐ (์: `Content-Type`) |
Body | ์์ฒญ ๋ณธ๋ฌธ (JSON, XML, Form-Data ๋ฑ) |
Tests | ์๋ต์ด ์ ์์ ์ธ์ง ๊ฒ์ฆํ๋ ์คํฌ๋ฆฝํธ |
Pre-request Script | ์์ฒญ ์ ์ ์คํ๋๋ JavaScript ์ฝ๋ |
4. Postman์ผ๋ก API ํ ์คํธํ๊ธฐ
โ GET ์์ฒญ (๋ฐ์ดํฐ ์กฐํ)
- Postman ์คํ ํ `+ New Request` ํด๋ฆญ
- GET ๋ฉ์๋ ์ ํ
- URL ์ ๋ ฅ (์: `https://jsonplaceholder.typicode.com/posts/1`)
- Send ๋ฒํผ ํด๋ฆญ
- ์๋ต(Response) ๋ฐ์ดํฐ ํ์ธ
โ POST ์์ฒญ (๋ฐ์ดํฐ ์์ฑ)
- POST ๋ฉ์๋ ์ ํ
- URL ์ ๋ ฅ (์: `https://jsonplaceholder.typicode.com/posts`)
- Body → raw → JSON ์ ํ
- JSON ๋ฐ์ดํฐ ์ ๋ ฅ
- Send ๋ฒํผ ํด๋ฆญ
- ์๋ต(Response) ๋ฐ์ดํฐ ํ์ธ (์๋ก์ด ๋ฐ์ดํฐ๊ฐ ์์ฑ๋จ)
# JSON
{
"title": "์๋ก์ด ๊ธ",
"body": "Postman์ ์ฌ์ฉํ API ์์ฒญ",
"userId": 1
}
โ PUT ์์ฒญ (๋ฐ์ดํฐ ์์ )
- PUT ๋ฉ์๋ ์ ํ
- URL ์ ๋ ฅ (์: `https://jsonplaceholder.typicode.com/posts/1`)
- Body → raw → JSON ์ ํ
- ์์ ํ ๋ฐ์ดํฐ ์ ๋ ฅ
- Send ๋ฒํผ ํด๋ฆญ
- ์๋ต(Response) ๋ฐ์ดํฐ ํ์ธ
# JSON
{
"id": 1,
"title": "์์ ๋ ์ ๋ชฉ",
"body": "์์ ๋ ๋ด์ฉ",
"userId": 1
}
โ DELETE ์์ฒญ (๋ฐ์ดํฐ ์ญ์ )
- DELETE ๋ฉ์๋ ์ ํ
- URL ์ ๋ ฅ (์: `https://jsonplaceholder.typicode.com/posts/1`)
- Send ๋ฒํผ ํด๋ฆญ
- ์๋ต(Response) ์ํ ์ฝ๋๊ฐ `200` ๋๋ `204`์ด๋ฉด ์ ์์ ์ผ๋ก ์ญ์ ๋จ
5. Postman์ ์ถ๊ฐ ๊ธฐ๋ฅ
โ Authorization (์ธ์ฆ)
- API ์์ฒญ ์ ๋ก๊ทธ์ธ ํ ํฐ์ด ํ์ํ ๊ฒฝ์ฐ ์ฌ์ฉ
- Bearer Token, Basic Auth, OAuth2 ๋ฑ ์ง์
- `Headers`์ Authorization ๊ฐ์ ์ถ๊ฐํ์ฌ ์ฌ์ฉ ๊ฐ๋ฅ
โ Headers (์์ฒญ ํค๋ ์ค์ )
- API ์์ฒญ ์ `Content-Type`์ ์ง์ ํ ์ ์์
# JSON
{
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_ACCESS_TOKEN"
}
โ Variables (๋ณ์ ์ค์ )
- ํ๊ฒฝ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ API URL, ํ ํฐ ๋ฑ์ ๊ด๋ฆฌ ๊ฐ๋ฅ
- ์์ : `{{base_url}}/posts/1` (ํ๊ฒฝ๋ณ์ `base_url = https://jsonplaceholder.typicode.com`)
โ Tests (์๋ต ํ ์คํธ)
- API ์๋ต์ ๊ฒ์ฆํ๋ ์๋ํ ํ ์คํธ ์์ฑ ๊ฐ๋ฅ
- ์์ : ์๋ต ์ฝ๋๊ฐ 200์ธ์ง ํ์ธ
pm.test("์๋ต ์ฝ๋๊ฐ 200์ธ์ง ํ์ธ", function () {
pm.response.to.have.status(200);
});
6. Postman๊ณผ Django ์ฐ๋
โ Django REST Framework์ ํจ๊ป ์ฌ์ฉํ๊ธฐ
- Django ์๋ฒ ์คํ
- Postman์์ `GET http://127.0.0.1:8000/api/posts/` ์์ฒญ
- ์๋ต ๋ฐ์ดํฐ ํ์ธ
python manage.py runserver
โ Django API ๊ฐ๋ฐ ์ Postman์ ์ฌ์ฉํ๋ฉด ํธ๋ฆฌํ๊ฒ API๋ฅผ ํ ์คํธํ๊ณ ๋๋ฒ๊น ์ด ๊ฐ๋ฅํจ โ
ํฌ์คํธ๋งจ ์ ๋ฆฌ:
1. Postman์ API ํ ์คํธ ๋ฐ ๊ฐ๋ฐ์ ์ฝ๊ฒ ํ ์ ์๋ ๋๊ตฌ์ด๋ค~
2. GET, POST, PUT, DELETE ์์ฒญ์ ์ฝ๊ฒ ํ ์คํธ ๊ฐ๋ฅํ๋ค~
3. API ์ธ์ฆ, ๋ณ์, ์๋ํ ํ ์คํธ ๊ธฐ๋ฅ ๋ฑ์ ์ ๊ณตํ๋ค~
4. Django REST API ๊ฐ๋ฐ ์ ๋งค์ฐ ์ ์ฉํ๋ค~
'AI ๐ค > Django โ๏ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[250210] Django Admin ์ ๋ฆฌ~ (0) | 2025.02.10 |
---|---|
[250205] CRUD ์์ธ ์ ๋ฆฌ~ (0) | 2025.02.05 |
[250204] URI ์ดํดํ๊ธฐ (0) | 2025.02.04 |
[250203] Serializer ์ ๋ฆฌ~ (0) | 2025.02.03 |
[250131] django DRF(Django Rest Framework)๋~ (0) | 2025.01.31 |