(UMC) 6. API URL의 설계

jimmy·2024년 5월 16일

UMC 6기

목록 보기
6/11

API란?

Application Programming Interface의 약자로,
애플리케이션을 프로그래밍 할 때, 보다 쉽게 할 수 있도록 해주는 도구들을 의미한다.

REST API란?

HTTP 메소드와 자원을 이용해 서로 간의 통신을 주고받는 방법이다.

API Endpoint

해당 API를 호출하기 위한 HTTP 메소드, URL을 포함한다.

HTTP 메소드

  1. GET : 조회
  2. POST : 생성, 다양한 정보 처리
  3. PUT : 갱신(전체)
  4. PARCH : 갱신(일부)
  5. DELETE : 삭제

RESTful API Endpoint의 설계

RESTful 하게 API를 설계하는데에는 여러 규칙이 존재한다.

  1. URI에 동사가 포함이 되어선 안된다.
  2. URI에서 단어의 구분이 필요한 경우 -(하이픈)을 이용한다.
  3. 자원은 기본적으로 복수형으로 표현한다.
  4. 단 하나의 자원을 명시적으로 표현을 하기 위해서는 식별 값을 추가로 사용한다.
  5. 자원 간 연관 관계가 있을 경우 이를 URI에 표현한다.

너무 타이트하게 RESTful 한 설계를 따르려고 하지 않아도 된다!

N : M 관계에서는 비즈니스 로직상 더 중요한 대상을 계층 관계에서 앞에 두는 것이 좋다.

세부적인 API 설계

아래 키워드를 사용하여 API 설계를 하게 되는데 하나하나 어떻게 사용하는지 알아보겠다.

  1. path variable
  2. query string
  3. request body
  4. request header

Path Variable

아까 살펴 본 RESTful 설계 규칙에서 단건 조회일때는 식별 값을 추가로 사용한다고 했는데, 이 경우에 path variable을 사용한다.

🔑 GET /users/articles/{articleId}
단어 구분을 하이픈을 사용한다고 했으나, 타이트하게 규칙을 따르지 않아도 되므로 둘 다 상관없다.

Query String

보통 검색 조회 때 사용이 된다. (GET 요청)

🔑 GET /users/articles?name=umc&owner=Jea
쿼리 스트링은 API 엔드 포인트에 포함이 되지 않는다.

Request Body

url에 특정 정보를 노출하는 것이 위험할 수 있기 때문에, url에 노출 되지 않고 request body에 데이터를 담아 json 혹은 form-data 형태로 보낼 수 있다.
json의 경우 아래와 같은 형태로 클라이언트에서 서버로 전송하게 된다.

{
	“name” : “임지민”,
	“phoneNum” : “010-1111-2222”,
	"nickName" : "Jea"
}

Request Header

메타데이터 즉, 전송에 관련된 기타 정보들이 담기는 부분으로
대표적으로 토큰을 담는 용도로 사용한다.

profile
백문이 불여일기

0개의 댓글