REST api
api란?
응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스
인터페이스(interface)는 컴퓨터 시스템끼리 정보를 교환하는 공유 경계를 의미한다.
rest api란?
- representational state transfer
자원을 이름(자원의 표현)으로 구분하여 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미 즉 자원(resource)의
표현(representation)에 의한 상태 전달
Rest는 기본적으로 웹의 기존 기술과 HTTP프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는
아키텍처 스타일이다.
- HTTP URI을 통해 자원을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것을 의미한다.
REST의 특징
- 인터페이스 일관성
- 무상태
- 캐시 처리 가능
- 계층화
- 자체 표현구조
- 클라이언트/서버 구조
REST api 구성요소
자원(RESOURCE) URI를 통해 정보의 자원을 명시하고 구분할 수 있어야 한다.
[BAD]
- 회원 목록 조회: /read-member-list
- 회원 조회: /read-member-by-id
- 회원 등록: /create-member
- 회원 수정: /update-member
- 회원 삭제: /delete-member
[GOOD]
- 회원 목록 조회: /members
- 회원 조회: /members/{id}
- 회원 등록: /members/{id}
- 회원 수정: /members/{id}
- 회원 삭제: /members/{id}
- 회원 목록 조회: GET
- 회원 조회: GET
- 회원 등록: POST
- 회원 수정: PUT
- 회원 삭제: DELETE
api Rules
단수보다는 복수를 사용
| GET /users POST /users GET / users/1 |
url은 명사위주 작성
| [BAD] GET /getUsers POST /createUser GET /getUser |
| [GOOD] GET / users POST /users GET / users/1 |
마지막에 / 포함하지 않음
| [GOOD] http://example.com/posts |
| [BAD] http://example.com/posts/ |
_(underbar) 대신 -(dash)를 사용한다.
| [GOOD] http://example.com/cancel-orders |
| [BAD] http://example.com/cancel_orders |
소문자를 사용한다.
| [GOOD] http://example.com/cancel-orders |
| [BAD] http://example.com/cancelOrders |
행위(method)는 URL에 포함하지 않는다.
| [GOOD] DELETE http://example.com/posts/1 |
| [BAD] POST http://example.com/create-posts |
컨트롤 자원을 의미하는 URL 예외적으로 동사를 허용한다.
| [GOOD] http://example.com/id/duplicate |
| [BAD] http://example.com/id/duplicating |
컬렉션 필터링 -> 쿼리 파라미터
| [GOOD] http://example.com/users?region=ko http://example.com/users?gender=male http://example.com/users?region=ko&gender=male |
| [BAD] http://example.com/users/region/ko http://example.com/users/gender/male http://example.com/users/region/ko/gender/male |
REST api에 대한 특강이 있었다.
들어보니 지난 개인프로젝트를 나름 REST하게 했던거 같기..ㄷ...하고
앞으로 참고하여 api를 구성해보겠다
'TIL' 카테고리의 다른 글
| 스파르타 내배캠 Spring 65일차 (0) | 2023.01.03 |
|---|---|
| 스파르타 내배캠 Spring 64일차 (0) | 2023.01.02 |
| 스파르타 내배캠 Spring 45일차 (1) | 2022.12.14 |
| 스파르타 내배캠 Spring 37일차 (2) | 2022.12.07 |
| 스파르타 내배캠 Spring 36일차 (0) | 2022.12.05 |