[HTTP/네트워크] REST API, Postman 실습
CSR(Client Side Rendering)에서는 몇 가지의 메소드를 이용해 서버와 통신합니다. GET을 통해 웹 페이지나
데이터를 요청하고, POST로 새로운 글이나 데이터를 전송하거나 DELETE로 저장된 글이나 데이터를 삭제할
수 있습니다.
REST API에서 REST는 “Representational State Transfer”의 약자로, 웹(http)의 장점을 최대한 활용할 수
있는 아키텍처로써 처음 소개되었습니다.
REST API는 웹에서 사용되는 모든 자원을 HTTP URI로 표현하고, HTTP Method를 통해 요청과 응답을
정의하는 방식을 말합니다. REST API를 사용한다는 것은 REST 아키텍처의 제약 조건을 준수한다는 말입니다.
REST API
1. Endpoint
http://3.36.72.17:3000
root-endpoint(혹은 root-URL): API로 요청을 서버와 통신할 때, 서버가 요청을 수락하는 시작점을 뜻
합니다.
Github API의 root-endpoint는 https://api.github.com이고, 트위터 API의 root-endpoint는 https://a
pi.twitter.com입니다. 일반적으로 root-endpoint는 도메인 주소의 루트(/)를 가리킵니다. 마찬가지로 Mess
age States Server 의 URL을 기준으로 파악할 수 있는 root-endpoint는 Message States Server의 가장 마
지막 Location인 호스트의 루트(/)입니다.
path: path(또는 url-path)는 API를 통해 서버와 통신할 때, 서버와 통신할 수 있는 key 역할을 합니다.
서버에 정의된 문자열에 따라 path가 달라집니다. 예를 들어, https://api.github.com/user 에서는 'us
er'가 path입니다.
2. 메시지 조회
Request
GET /{githubID}/messages -- githubID가 작성한 모든 메시지를 조회합니다.
{githubID} 부분은, 요청하는 사람의 아이디를 넣게되면 아래와 같습니다.
GET /kimcoding/messages -- kimcoding이 작성한 모든 메시지를 조회합니다.
이 요청에는 추가적인 파라미터(query parameter)를 사용할 수 있습니다.
3. 메시지 추가
Request
POST /{githubID}/messages -- githubID가 작성한 메시지를 생성합니다.
{githubID} 부분은, 각 개인의 아이디를 넣습니다. 메시지는 24시간마다 자동으로 리셋됩니다.
요청 본문엔 다음 내용을 반드시 포함해야 합니다.
요청형식: JSON
-MIME 타입: application/json
parameter | 형식 | 설명 | 필수 포함 여부 |
username | 문자열 | 사용자이름 | 필수 |
text | 문자열 | 본문내용 | 필수 |
roomname | 문자열 | 방 이름 | 필수 |
Response
응답은 다음과 같은 JSON 형식입니다.
{
"id": 5
}
[데이터] Request에 따른 Response 예시
id는 숫자 형식이며, 새로 생성된 메시지의 고유한 ID값입니다.
4. 메시지 초기화
Request
POST /{githubID}/clear -- [요청] githubID가 작성한 메시지를 초기화합니다.
요청 본문은 필요하지 않습니다.
Response
응답은 json형식 입니다.
{
"message": "message initialized!"
}
Postman 사용하는 방법
GET 요청하기
Postman 화면보기
포스트맨의 화면구성을 확인합니다.
새로운 탭 오픈
- 요청/응답을 여러 개 확인할 수 있습니다.
HTTP 메소드 선택
- GET, POST, DELETE 등과 같은 메소드 중 하나를 선택합니다.
- API 문서 상 GET 메소드를 사용하므로, GET으로 선택합니다.
URL 입력 창
- URL과 Endpoint를 입력합니다.
- API 문서에 따르면, http://3.36.72.17:3000/kimcoding/messages 과 같이 입력하면 됩니
다.
HTTP 요청 버튼
- 요청을 보냅니다.
HTTP 요청시 설정할 수 있는 각종 옵션
- 추가적인 파라미터나, 요청 본문(body)을 추가할 수 있습니다.
- API 문서에서 확인할 수 있듯이, roomname 이라는 파라미터를 사용할 수 있습니다. 필수는
아니지만, 파라미터를 사용하려면 Params 탭의 KEY, VALUE 에 각각 roomname 과 필요한
값을 입력합니다.
HTTP 응답 화면
- 요청을 보낸 후 응답을 확인하세요.
POST 요청하기
POST 요청은 GET 요청과 다르게 본문(body)를 포함하는 경우가 많습니다
본문의 형식 선택 (1)
- JSON 형식으로 보낼 때에는, raw를 선택합니다.
본문의 형식 선택 (2)
- 보낼 형식에 맞게 정확한 타입을 선택합니다.
JSON 형식으로 보낼 때에는, JSON을 선택합니다.
앞서 1번 및 2번 과정은 HTTP 요청 헤더에 다음과 같이 작성하는 것과 동일합니다.
Content-Type: application/json[헤더] HTTP 요청 헤더에 전송할 데이터 타입을 입력합니다.
본문 내용
- 본문을 입력합니다. 앞서 JSON을 선택했으므로, 유효한 JSON을 적어주어야 합니다.
API 문서에 따르면 username, text, roomname 을 형식에 맞게 적어주어야 합니다.
응답 살펴보기
요청이 끝나지 않을 때
일반적으로 서버가 요청에 대한 응답을 하지않는 경우, 요청이 끝나지 않습니다. 이것은 서버의 문제입니다. 만
약 여러분이 서버를 만드는 중이라면, 응답 처리를 했는지 확인합니다. 이 경우에는 timeout이라는 응답을 받게
됩니다.
기대했던 응답이 나오지 않을 때
결과에 아무것도 나오지 않거나, 기대했던 값이 나오지 않으면 HTTP 응답 코드를 확인
Postman으로 API 테스팅하기
Getting Started
1. 가입 및 설치
Postman에 회원가입을 한 후, 프로그램을 설치합니다.
2. 환경 설정
Postman을 설치하면 다음과 같은 환경을 마주하게 됩니다. Workspaces에서 My Workspace를 클릭한
후 +를 눌러 테스팅을 시작합니다. 기존에 사용한 적이 있거나, 3번째 이미지로 시작된다면 바로 테스트를
시작하세요.