RESTful API 설계규칙

YJS·2022년 7월 20일
0

☝️REST란?

Representational State Transfer의 약자

->자원을 이름으로 구분하여 해당 자원의 상태 및 정보를 주고 받는 모든 것
->HTTP URI를 통해 자원을 명시하고 HTTP Method를 통해 해당 자원에 대한 CRUD 적용을 의미

🤓REST의 구성 요소
1. 자원: URI (/groups/:group_id)
2. 행위: HTTP Method (GET, POST, PUT, DELETE)
3. 표현: JSON 혹은 XML을 통해 데이터를 주고 받는 것

☝️REST API란?
REST 기반으로 서비스 API(데이터와 기능의 집합을 제공하여 정보 교환 가능하도록 하는 것) 구현

💡REST API설계의 규칙

API 이름은 쉽고 직관적이어야한다.

• 복수형 > 단수형

 /customers/{customerId}

• 상위 > 하위

/customers/{customerId}/accounts/{accountId}

• 명사 사용

/members/show/1 (x)
/members/1

• 일관성
• 계층적 구조를 /로 구분

/houses/apartment

• 마지막에는 / 사용하지 않기 (혼동을 줄 수 있음)
• -(하이픈)사용해서 가독성 높이기

/device-management/managed-devices

• _(언더바)사용 지양 (특정 환경에서는 안보일 수 있음)
• 소문자 사용
• 확장자명 사용 지양
• CRUD 기능 이름 사용 금지

HTTP GET http://api.example.com/device-management/managed-devices  //전체 device 가져오기
HTTP POST http://api.example.com/device-management/managed-devices  //새 device 만들기

HTTP GET http://api.example.com/device-management/managed-devices/{id}  //특정 device 가져오기
HTTP PUT http://api.example.com/device-management/managed-devices/{id}  //특정 device 업데이트
HTTP DELETE http://api.example.com/device-management/managed-devices/{id}  //특정 device 삭제

• 쿼리컴포넌트를 URI 필터링으로 사용

/device-management/managed-devices?region=USA&brand=XYZ&sort=installation-date

REST API 설계 예시

🤓RESTful이란?
REST의 원리를 따르는 시스템으로 REST API를 제공하는 경우
-> 이해하기 쉽고 사용이 용이한 API 설계 목적
-> 일관적인 규칙을 통해 이해도 및 호환성을 높이는 것이 주 목적

**CRUD 기능을 모두 POST로만 처리하거나 라우트에 resource,id 이외의 정보가 들어가지 않도록 주의

출처: https://restfulapi.net/resource-naming/

profile
우당탕탕 개발 일기

0개의 댓글