kkdy21.log
로그인
kkdy21.log
로그인
Rest API, Restful API 란?
DY
·
2022년 8월 7일
팔로우
0
0
CS
목록 보기
1/10
Rest API
Representational State Transfer
웹에서 사용되는 데이터나 자원(Resource)을 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식을 말한다.
Rest API 성숙도 모델
Rest하게 작성하는 API는 크게 0~3단계로 나뉘고 보통 2단계까지만 해도 잘 표현된 Rest api라고 말한다.
0 단계
단순히 HTTP 프로토콜을 사용하는것.
Rest 원칙을 준수했다고 보기어렵다.
1 단계
개별 리소스(Resource)와의 통신을 준수해야함.
모든 자원은 개별 리소스에 맞는 엔드포인트(Endpoint)를 사용해야하며 요청하고 받는 자원에 대한 정보를 응답으로 전달해야 한다
URI에 개별 아이디에 따른 값을 조회할수 있도록 URI를 만들어야함.
0단계에서는 /appointment로 값을 조회했다면 아래는 엔드포인트를 사용했음.
2단계
CRUD에 맞게 적절한 HTTP 메서드를 사용해야 함.
GET 메서드 같은 경우는 서버의 데이터를 변화시키지 않는 요청에 사용해야 함.
POST 메서드는 요청마다 새로운 리소스를 생성하고
PUT 메서드는 요청마다 같은 리소스를 반환한다.
이렇게 매 요청마다 같은 리소스를 반환하는 특징을 멱등(idempotent)하다고 한다. 그렇기 때문에 멱등성을 가지는 메서드 PUT과 그렇지 않은 메서드POST는 구분하여 사용해야 한다.
PUT 메서드와 PATCH 메서드도 구분하여 사용해야 합니다. PUT은 교체, PATCH는 수정의 용도로 사용한다.
3단계
HATEOAS(Hypertext As The Engine Of Application State)라는 약어로 표현되는 하이퍼미디어 컨트롤을 적용해야한다.
응답에는 리소스의 URI를 포함한 링크요소를 삽입하여 작성해야 한다.
유저가 특정 작업을 요청했을 때 응답으로 해당작업의 내용과 추가적으로 관련된 정보를 CRUD할수 있는 link를 포함하여 작성하는것.
Restful API Rest API
앞에서 말한 성숙도와 Rest API를 설계시 지켜야할 약속을 잘 지켜 만든 API를 Restful한 API라고 한다. 즉
Rest의 설계규칙을 잘 지켜서 만든 API
를 말한다.
Open API
글자 그대로 누구에게나 열려있는 API
그러나 "무제한으로 이용할 수 있다"라는 의미는 아니다. API마다 정해진 이용 수칙이 있고, 그 이용 수칙에 따라 제한사항(가격, 정보의 제한 등)이 있을 수 있다. 또한 사용시 인증에 필요한 API key를 요구할수도 있다.
Postman
api테스트를 위해 HTTP 요청을 테스트 할 수 있는 테스트 도구
테스트 도구를 사용하지 않고 fetch를 이용한 코드를 작성해서 요청할 수 있지만 번거롭기 때문에 사용
HTTP API 테스트 도구 (CLI)
curl
wuzz
HTTP API 테스트 도구 (GUI)
Postman
Insomnia
DY
화면에 보이는 모든것에 관심이 있습니다. 개발하면서 고민했던것들, 공부했던걸 기록하는 저장소입니다.
팔로우
다음 포스트
HTTPS 암호화
0개의 댓글
댓글 작성