REST API에 대해 이해할 수 있다.
REST API 문서를 읽을 수 있다.
REST API에 맞춰 디자인할 수 있다.
Open API와 API Key에 대해 이해할 수 있다.
Postman이 무엇인지 이해하고 사용할 수 있다.
HTTP API 테스팅이 무엇인지 알 수 있다.
Postman을 사용하여 서버에 GET, POST 요청을 보내고 응답을 받을 수 있다.
(Optional) Postman을 사용하여 Open Weather Map Open API에 요청을 보낼 수 있다.
Chapter 1 - REST API
(1) API의 대표적인 아키텍처 - REST API
Representational State Transfer(로이 필딩), 웹(http)의 장점을 최대한 활용할 수 있는 아키텍처로 소개
HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식
HTTP 프로토콜 기반으로 요청과 응답에 따라 리소스를 주고받기 위해서는 알아보기 쉽고 잘 작성된 메뉴판이 필요한데, 이 역할을 API가 수행해야 하므로 서로 잘 알아볼 수 있도록 작성하는 것이 중요
0단계
모든 자원은 개별 리소스에 맞는 적절한 엔드 포인트를 사용 - 요청(POST/doctors/허준, POST/slots/123)
요청하고 받은 자원에 대한 정보를 응답으로 전달
동사, HTTP메소드, 특정 행위에 대한 단어 사용은 지양
리소스에 집중해 명사 형태의 단어 작성
응답, 리소스에 대한 정보, 리소스 사용에 대한 성공/실패 여부
요청: GET메소드가 body 비어 있기 때문에 query parameter 사용하여 요청 대상 표시(참고 Urclass /Startline 요청 대상)
요청(GET/doctors/허준/slots?date=2022-08-10)
응답(응답 코드 명확히 작성 not 200 OK, 201 Created / Location: slots/123/appointment)
<리소드와 HTTP 메소드>
GET: 서버의 데이터를 변화시키지 않는 요청
POST: 요청마다 새로운 리소스 생성
PUT: 요청마다 같은 리소스 반환(멱등성)/전체수정(교체)
PATCH : 일부수정
3단계 : 하이퍼 미디어 컨트롤 원칙 준수
HATEOAS(Hypertext As The Engine Of Application State)
요청: 2단계와 동일
응답: 리소스의 URI를 포함한 링크 요소 삽입. 링크 요소에는 응답을 받은 다음 할 수 있는 다양한 액션위해 하이퍼미디어 컨트롤
API Key : API를 이용하기 위해서는 Key가 필요. 로그인된 이용자에게만 자원에 접근할 수 있는 권한을 Key 형태로 제공.
데이터 요청시 API Key를 같이 전달해야 응답을 받을 수 있음.
(1) Postman 사용하는 방법
브라우저는 서버에 HTTP 요청이 가능하지만 GET 요청에 거의 사용.
브라우저 주소창에 URL 입력하면 해당 URL의 root-endpoint로 GET 요청 보냄.
GET이 아닌 다른 메소드를 사용하려면 개발자 도구의 콘솔 창에서 내장 함수 fetch 사용할 수 있음.
그러나 테스트를 위해 매번 코드를 작성하는 것은 번거로운 작업.
대신 HTTP요청을 테스트할 수 있는 다양한 도구 사용
CLI : curl, WUZZ(git)
GUI : Postman, Insomnia
Chapter 4- Message States 요청
root-endpoint(혹은 root-URL) : API로 요청을 서버와 통신할 때, 서버가 요청을 수락하는 시작점
일반적으로 도메인 주소의 루트(/)를 가리킴.
path: path(또는 url-path)는 API를 통해 서버와 통신할 때, 서버와 통신할 수 있는 key 역할.
서버에 정의된 문자열에 따라 path가 달라짐. 예를 들어, 에서는 'user'가 path다.