API
프로그램 간에 상호작용하기 위한 매개체
REST API
- Representational State Transfer Application Programming Interface
- 자원을 이름으로 구별해 자원의 상태를 주고받는 API 방식 - URL의 설계 방식
장단점
장점
- 주소와 메서드만 보고 요청의 내용을 파악 가능
- URL만 보고도 무슨 행동을 하는 API인지 명확하게 알 수 있음
- 상태가 없다는 특징이 있어 클라이언트와 서버의 역할이 명확하게 분리
- HTTP 표준을 사용하는 모든 플랫폼에서 사용 가능
단점
- HTTP 메서드(GET, POST 등) 방식의 개수에 제한이 있음
- 설계를 하기 위해 공식적으로 제공되는 표준 규약이 없음
REST API를 사용하는 방법
1. URL에는 동사를 쓰지 말고, 자원을 표시해야 한다.
URL 설계 예
학생 중에 id가 1인 학생의 정보를 가져오는 URL
- /studens/1
- /get-student?student_id=1 // 동사 사용 - 추후 개발 시 혼란 야기할 가능성 있음
| 예문 | 적합성 | 설명 |
|---|
| /articles/1 | 적합 | 동사 없음, 1번 글을 가져온다는 의미가 명확, 적합 |
| /articles/show/1/show/articles/1 | 부적합 | show라는 동사가 있음, 부적합 |
2. 동사는 HTTP 메서드로
HTTP 메서드
- 서버에 요청하는 방법을 나눈 것
- POST - 만들기, GET - 읽기, PUT - 업데이트, DELETE - 삭제
- URL에 입력하는 값이 아니라 내부적으로 처리하는 방식을 미리 정의하는 것
| 설명 | 적합한 HTTP 메서드와 URL |
|---|
| id가 1인 블로그 글을 조회하는 API | GET/articles/1 |
| id가 1인 블로그 글을 추가하는 API | POST/articles/1 |
| id가 1인 블로그 글을 수정하는 API | PUT/articles/1 |
| id가 1인 블로그 글을 삭제하는 API | DELETE/articles/1 |
※ 슬래시는 계층 관계를 나타내는 데 사용