반응형
반응형
반응형

REST API : 웹 상에서 데이터나 기능을 "규칙 있게" 주고 받는 방식


1. REST, REST API가 뭐야?

1) REST(Representational State Transfer)

REST는 웹 서비스를 설계할 때 지켜야할 스타일/원칙

1. 리소스(Resource) 중심

  • 서버가 제공하는 대상(데이터/기능)을 모두 "리소스"로 간주
  • 예)사용자, 게시글, 주문, 프로젝트 ...
  • 각 리소스는 고유한 URL(URI)로 표현:
    - /users
    - /users/1
    - /projects/123/components

2. HTTP 메서드로 동작 표현

  • GET:조회
  • POST:생성
  • PUT:전체 수정
  • PATCH:부분 수정
  • DELETE:삭제

예를 들어 "1번 사용자 조회"는

  • GET /users/1

3. 무상태성(Stateless)

  • 서버는 클라이언트의 상태를 세션으로 기억하지 않음
  • 각 요청은 필요한 정보를 전부 들고 와야 함
    (토큰, 요청 데이터 등)

4. 표현(Representation)

  • 리소스는 여러 방식으로 표현 가능
  • 요즘은 거의 다 JSON 사용:
{
	"id": 1,
    "name": "name"
}

5. 일관된 인터페이스

  • URL, 메서드, 응답 형식을 일관되게 설계하면 클라이언트 입장에서 이해하기 편함

2. RESTful API란?

"REST 원칙을 잘 지키면서 만든 API"를 보통 RESTful API라고 말함

예를 들어 회원 관리 API라면:

기능 HTTP 메서드 URL
전체 회원 조회 GET /users
특정 회원 조회 GET /users/{id}
회원 생성 POST /users
회원 정보 수정 PUT/PATCH /users/{id}
회원 삭제 DELETE /users/{id]

여기에 상태 코드까지 맞춰주면 더 RESTful 해짐

  • 200 OK, 201 Created, 400 Bad Request, 404 Not Found, 500 Internal Server Error ...

3. REST API 설계 순서

1. 무슨 리소스를 다룰지 정함

  • 예) User, Project, Post, Order 등

2. 각 리소스 별로

  • 어떤 기능이 필요한지 (조회/등록/수정/삭제) 정함
  • URL/HTTP 메서드 설계

예) 게시글(Post) 리소스

  • GET /posts: 전체조회
  • GET /posts/{id}: 상세조회
  • POST /posts: 생성
  • PUT /posts/{id}: 수정
  • DELETE /posts/{id}: 삭제

3. 요청/응답 JSON 형식 정의

  • 예) 게시글 생성 요청 바디:
{
  "title": "첫 글입니다",
  "content": "내용..."
}

 

  • 응답:
{
  "id": 1,
  "title": "첫 글입니다",
  "content": "내용...",
  "createdAt": "2025-11-25T12:00:00"
}

4. 에러 케이스 정의

  • 없는 ID 요청 시 → 404
  • 필수 값 누락 → 400
  • 서버 내부 오류 → 500
반응형

'' 카테고리의 다른 글

웹 프레임워크  (0) 2025.11.17

+ Recent posts