- 시작하게 된 계기 및 다짐 😮
이번 코드스테이츠의 백엔드 엔지니어링 개발자 부트캠프
에 참여하게 되면서 현직개발자 분들의 빠른 성장을 위한 조언 중 자신만의 블로그를 이용하여 배운 것 들을 정리하는게 많은 도움이 된다 하여 시작하게 되었다.
- 학습 목표 😮
목표 | 결과 |
---|---|
REST API문서 활용 및 이해 | O |
REST API를 활용한 디자인 | O |
Open API와 API Key에 대한 이해 | O |
Crud이해 | O |
Postman을 이용하여 HTTP의 요청/응답 실습 | O |
- 정리
CRUD : 대부분의 컴퓨터 SW가 가지는 기본적인 데이터 처리 기능인 Create(생성), Read(읽기), Update(갱신), Delete(삭제)를 묶어서 일컫는 언어이다.
1. Create : POST
- create는 서버에 정보를 올려달라는 요청입니다. create는 POST 메서드를 사용해 요청합니다.
- POST를 통해 해당 URI를 요청하면 리소스를 생성합니다.
2. Read : GET
- read는 GET 메서드를 사용해 요청합니다.
- GET를 통해 해당 리소스를 조회합니다.
- 리소스를 조회하고 해당 도큐먼트에 대한 자세한 정보를 가져옵
3. Update = PUT, PATCH
- update는 정보를 바꾸는 요청
- update는 PUT 혹은 PATCH 메서드를 사용해 요청
- PUT은 데이터 전체를 바꾸고 싶을 때, PATCH는 데이터의 일부만 수정하고 싶을 때 사용합니다.
4. Delete = DETELE
- delete는 정보를 지우는 요청입니다.
- delete는 DELETE 메서드를 사용해 요청합니다.
- DELETE를 통해 리소스를 삭제할 수 있습니다.
Representational State Transfer
endpoint : URI부분의 끝맺음
1. REST API
- 웹(http)의 장점을 최대한 활용하는 아키텍처
- 웹에서 사용되는 데이터/자원(resource)를 HTTP URI로 표현하고, HTTP 프로토콜을 통해 요청과 응답을 정의하는 방식
- 되도록 엔드포인트에 리소스를 명시하는 것이 좋음
2. REST API 4단계
- 0~3단계로 구성되어있고, 2단계까지만 적용해도 좋은 API
- 리소스는 구체적인 이름을 사용
(0) 단계 : 단순히 HTTP 프로토콜을 사용
ex)POST /appointment HTTP/1.1
(1) 단계 : 개별 리소스에 맞는 엔드포인트를 사용하여, 요청 받은 자원에 대한 정보를 응답(개별 리소스와의 통신 준수)
- 기존의 엔드포인트를 대신하는 것은 하위 호환성을 고려하지 않은 방식
=> Accept-Language헤더를 요청에 함께 제공
ex) POST /doctors/허준 HTTP/1.1
(2) 단계 : CRUD에 맞는 적절한 HTTP 메서드 사용, 메서드의 사용 규칙 준수
- 리소스가 무엇인지, 명사 형태로 작성해야 함,get과 같은 동사 사용은 하지 않음
ex) GET /doctors/허준/slots?date=2022-08-10 HTTP1.1
(3) 단계 : HATEOAS(Hypertext As The Engine Of Application State)
- 응답에는 리소스의 URI를 포함한 링크 요소를 삽입하여 작성
ex) GET /doctors/허준/slots?date=2022-08-10 HTTP/1.1
★ 사진 참조
# 참고 : https://blog.restcase.com/5-basic-rest-api-design-guidelines/
https://cloud.google.com/apis/design?hl=ko
https://github.com/Microsoft/api-guidelines/blob/master/Guidelines.md
# GET : 서버의 데이터 변화시키지 않는 요청
POST : 멱등성을 가지는 PUT/ 가지지않는 POST 잘 구분해서 사용
PUT(교체)/PATCH(수정)도 구분하여 사용
1. OPEN API
- 누구나 공공데이터에 접근할 수 있는 오픈된 API
- https://openweathermap.org/api : 날씨 포털
2. API Key
- API를 이용하기 위해 서버를 여는 열쇠개념
- 서버가 응답을 할 때 비용이 발생하므로, 권한을 제어
- HTTP API 테스트 도구
- JSON 형식으로 보낼 때는, raw 사용
ex) GET/ endpoint?조건
# 실제 실습
- 피드백 😮
- 앞으로 해야 될 것 😮