본문 바로가기
웹/웹 지식

[웹 지식] CRUD와 REST API 설계 규칙

by 클레어몬트 2024. 10. 5.

https://claremont.tistory.com/entry/%EC%9B%B9-%EC%A7%80%EC%8B%9D-API%EC%99%80-RESTful-API

 

[웹 지식] API와 RESTful API

개인적으로 API는 "메뉴판에 있는 음식 사진을 손으로 직접 가리키는" 약속된 엔드포인트라 생각한다 🤔  ㅁAPI(Application Programming Interface): 소프트웨어 간의 상호작용을 위한 규칙과 프로토콜을

claremont.tistory.com

 

 

 

CRUD는 데이터베이스웹 애플리케이션에서 데이터를 다루는 네 가지 기본 작업을 나타내는 약어이다.

Create, Read, Update, Delete

이 네 가지 기본적인 기능을 말하기 쉽게 CRUD라 줄여서 부르는 것이다. 보통 씨알유디라 읽고 크러드라 읽는 사람도 있다.

 

상황1) 게시글 기능

C: 게시글 생성

R: 게시글 조회

U: 게시글 수정

D: 게시글 삭제

 

상황2) 회원가입 기능

C: 회원 가입

R: 회원가입 정보 조회

U: 회원가입 정보 수정

D: 회원 탈퇴

 

 

1. Create (생성): 새로운 데이터를 추가하는 작업이다. 예를 들어, 사용자 정보를 DB에 추가하는 것이 해당된다. HTTP 메서드에서는 POST가 이 작업에 해당한다.

POST /users

 

요청 본문(body): 새로운 사용자의 정보를 포함하는 JSON / XML 데이터

응답: 새로운 사용자 ID와 함께 성공 메시지 또는 적절한 상태 코드 (e.g. 201 Created)

 

 

 

2. Read (읽기): 기존 데이터를 조회하는 작업이다. DB에서 정보를 검색하거나 표시하는 것이 포함된다. HTTP 메서드에서는 GET이 이 작업에 해당한다.

GET /users

 

응답: 모든 사용자의 목록을 포함하는 JSON / XML 데이터 또는 적절한 상태 코드와 함께 성공 메시지 (e.g. 200 OK)

 

 

 

3. Update (수정): 기존 데이터를 수정하는 작업이다. DB에 저장된 정보를 변경하는 것으로, 예를 들어 사용자 정보를 업데이트하는 것이 해당된다. HTTP 메서드에서는 PUT이나 PATCH가 이 작업에 해당한다.

PUT /users/{id}

 

or

PATCH /users/{id}

 

요청 본문: 업데이트할 사용자의 정보를 포함하는 JSON / XML 데이터

응답: 적절한 상태 코드와 함께 성공 메시지 또는 업데이트된 사용자의 정보

 

 

 

4. Delete (삭제): 기존 데이터를 삭제하는 작업이다. DB에서 특정 정보를 제거하는 것이다. HTTP 메서드에서는 DELETE가 이 작업에 해당한다.

DELETE /users/{id}

 

응답: 적절한 상태 코드와 함께 성공 메시지 또는 삭제된 사용자의 정보

 

 

 

[REST API 설계 규칙]

1. URI가 길어지는 경우 언더바(_) 대신 하이픈(-)을 사용한다

 

(bad)

GET /users/profile_image
GET /users/profileImage

 

(good)

GET /users/profile-image

 

 

 

2. URI는 / 구분자를 사용하여 자원의 계층 관계를 나타내고, URI 사이에 연관 관계가 있는 경우 /리소스/고유ID/하위-리소스 순으로 작성한다!

 

(bad)

GET /users/profile/{user-id}

 

(good)

GET /users/{user-id}/profile

 

 

※ 보안 정책에 의해 GET, POST 만 허용하는 경우 자원 조작을 위한 보조이벤트(/update, /delete)를 URI 마지막에 추

가한다

 

 

 

 

 

참고 및 출처: https://idkim97.github.io/2022-08-17-CRUD%EB%9E%80/, https://www.youtube.com/watch?v=2j9uMMK2d-M