RESTful-API 정리

wodnr_P·2023년 7월 8일
0

CS 메모지

목록 보기
1/5

그 동안 프로젝트 진행, 공부 등을 하며 메모해둔 CS 지식을 다시 복기할 겸 시리즈로 간단히 정리해보려고 합니다.

RESTful-API?

Restful이란?

REST API를 제공하는 웹서비스

목적

이해하기 쉽고 사용하기 쉬운 REST API를 만드는 것


REST API

  • REST 기반으로 서비스 API를 구현하는 것
  • HTTP 표준을 기반으로 구현, HTTP를 지원하는 프로그램 언어로 클라이언트/서버 구현 가능
  • 자원에 대한 행위는 HTTP method로 표현 (GET, POST, PUT, DELETE 등)

    URI에 HTTP method, 행위에 대한 표현이 들어가면 안된다.
    경로 부분 중 변하는 부분은 유일값으로 대체( ex : id )

리소스 형식

  • Document : 객체의 인스턴스, DB 레코드와 유사
  • Collection : 서버에서 관리하는 디렉토리, 도큐먼트를 모아놓은 집합이며 DB 스키마에 해당
  • Store : 클라이언트에서 관리하는 리소스 저장소
  • Controller : CRUD를 제외한 특정 기능을 요구, URI 마지막에 동사를 사용

URI는 정보의 자원을 표현

  • Resource는 명사, 소문자를 이용
  • Resource의 Document 이름은 단수 명사를 사용
  • Resource의 Collection 이름은 복수 명사를 사용
  • Resource의 Store이름은 복수 명사를 사용

REST API 설계 규칙

  1. '/'는 계층 관계를 나타내는데 사용
  2. URI 마지막 문자로 '/' 사용하지 않는다
  3. URI에 _ 대신 - (하이픈) 사용, 소문자가 적합
  4. URI에 파일 확장자를 포함하지 않는다
  5. 리소스 간에 연관관계가 있는 경우 다음과 같이 표시
    GET : /users/{user_id}/devices 일반적으로 소유 ‘has’의 관계를 표현할 때

응답 상태 코드

  • 1XX : 전송 프로토콜 수준의 정보 교환
  • 2XX : 클라이언트 요청 성공적으로 수행
  • 3XX : 클라이언트 요청 완료하기 위해 추가적인 행동을 취해야 함
  • 4XX : 클라이언트의 잘못된 요청
  • 5XX : 서버쪽 오류로 인한 상태코드

통신 과정

  1. 클라이언트가 API문서에 따라 서버가 이해하는 방식의 요청 형식으로 전송
  2. 서버는 클라이언트를 인증하고, 클라이언트가 해당 요청을 수행하는 권한이 있는지 확인
  3. 서버가 요청을 수신하고 내부적으로 처리
  4. 서버가 클라이언트에 응답을 반환, 요청 성공했는지 여부를 알려주는 Http status code와 클라이언트가 요청한 모든 정보 포함
  • 요청 : 리소스 식별자(어떤 서버에 요청할 것인지), 메서드(get, post 등), HTTP 헤더
  • 응답 : 상태 표시줄(status code), 메시지(ex - json 형식), 헤더(메타 데이터)
profile
발전하는 꿈나무 개발자 / 취준생

0개의 댓글