코딩공부/T.I.L

2022-01-28 Message States Server REST API

지구야 사랑해 2022. 1. 28. 13:26

Endpoint

 

http://3.36.72.17:3000

 

  • root-endpoint(혹은 root-URL): API로 요청을 서버와 통신할 때, 서버가 요청을 수락하는 시작점 뜻함.

Github API의 루트 엔드포인트는  https://api.github.com 이고 트위터 API는 https://api.twitter.com 이다.

 

일반적으로 root-endpoint는 도메인 주소의 루트( / ) 를 가리킴.

 

마찬가지로 Message States Server 의 URL을 기준으로 파악할 수 있는 root-endpoint는 

 

Message States Server 의 가장 마지막 Location인 호스트의 루트( / ) 임.

 

  • path: path(또는 url-path)는 API를 통해 서버와 통신할 때, 서버와 통신할 수 있는 key 역할을 함.

 서버에 정의된 문자열에 따라 path가 달라지는데 예를 들어, https://api.github.com/user 에서는 'user'가 path이다.

 

 

 

메세지 조회

 

Request

GET /{githubID}/messages // githubID가 작성한 모든 메세지를 조회

 

이 요청에는 추가적인 파라미터(query parameter)를 사용할 수 있음. 파라미터는 다음과 같이 사용할 수 있음.

  • /kimcoding/messages?roomname=로비
parameter 형식 설명 필수 포함 여부
roomname 방 이름(문자열) 특정 roomname만 조회 필수 아님

[표] 파라미터 정보

 

 

Response

응답은 다음과 같은 JSON 형식

[
  {
    "id": 1,
    "username": "김코딩",
    "text": "안녕하세요",
    "roomname": "로비",
    "date": "2021-07-28T03:54:21.134"
  },
  // ...여러 개의 메시지
]

메시지에서 사용하는 속성은 다음과 같음.

 

parameter 형식 설명
id 숫자 고유한 아이디
username 문자열 사용자 이름
text 문자열 본문 내용
roomname 문자열 방 이름
date 문자열 작성한 시간

 

 

메세지 추가

 

Request

 

POST /{githubID}/messages

[요청] githubID가 작성한 메시지를 생성합니다. 메세지는 24시간마다 자동으로 리셋됨.

 

 

요청 본문엔 다음 내용을 반드시 포함해야 합니다.

 

  • 요청 형식: JSON
    • MIME 타입: application/json

 

parameter 형식 설명 필수 포함 여부
username 문자열 사용자 이름 필수
text 문자열 본문 내용 필수
roomname 문자열 방 이름 필수

[표] 파라미터 정보

 

Response

 

응답은 다음과 같은 JSON 형식입니다.

 

{
  "id": 5
}

[데이터] Request에 따른 Response 예시

 

id는 숫자 형식이며, 새로 생성된 메시지의 고유한 ID값입니다.

 

 

 

메세지 초기화

Request

POST /{githubID}/clear

[요청] githubID가 작성한 메시지를 초기화합니다.

요청 본문은 필요하지 않습니다.

 

 

Response

응답은 다음과 같은 JSON 형식입니다.

{
  "message": "message initialized!"
}

[데이터] Request에 따른 Response 예시\

 

스프린트

Message State 요청

 

이번 챕터는 Postman으로 API를 직접 테스트합니다.

REST API 문서를 읽는 법과 요청을 사용하는 법, message states Server 의 API 문서까지 살펴보았습니다. 이 경험을 참고하여 HTTP 요청을 보내고 결과를 확인하세요.

Bare minimum Requirements

  • message states Server에 GET 요청을 하고, 응답을 확인합니다.
  • message states Server에 /{githubID}/messages 으로 POST 요청을 하고, 응답을 확인합니다.
    • POST 요청이 성공하면, 서버에 전부 저장됩니다. 서버에 요청을 보낸 githubID를 통해 이번 스프린트의 제출을 확인합니다.
  • HTTP 응답 코드(Status code)와 응답이 어떤 방식으로 나오는지 직접 확인합니다.

Advanced

  • Open Weather Map에 날씨를 요청(GET)하고, 응답을 확인합니다.