[Web] RESTful API

Dean Kim·2023년 9월 11일

Web

목록 보기
2/2

Definitions

항목내용
클라이언트웹에서 정보에 액세스하려는 사용자
리소스다양한 애플리케이션이 클라이언트에게 제공하는 정보
서버클라이언트에 리소스를 제공하는 시스템
인증신원을 확인하는 프로세스
RESTful 웹 서비스는 응답을 보내기 전에 먼저 요청을 인증해야 함

REST?

  • REST(Representational State Transfer)는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처

  • HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원에 대한 CRUD Operation을 적용하는 것

  • 자원 기반의 구조(ROA, Resource Oriented Architecture) 설계의 중심에 Resource가 있고, HTTP Method를 통해 Resource를 처리하도록 설계된 아키텍처

  1. 복잡한 네트워크에서 통신을 관리하기 위한 지침
  2. 대규모의 고성능 통신을 안정적으로 지원 가능
  3. 쉬운 구현 및 수정으로 모든 API 시스템 파악 및 여러 플랫폼에서 사용 가능

API?

API(Application Programming Interface)는 다른 소프트웨어 시스템과 통신하기 위해 따라야 하는 규칙을 정의

RESTful API?

RESTful API는 REST 아키텍처 스타일을 따르는 API로 두 컴퓨터 시스템이 인터넷을 통해 정보를 안전하게 교환하기 위해 사용하는 인터페이스
(대부분 비즈니스 애플리케이션은 다른 내부 애플리케이션 및 서드 파티 애플리케이션과 통신하기 위함)

인증 방법

항목내용
기본 인증클라이언트가 요청 헤더에 사용자 이름과 암호를 넣어 전송 (base64 인코딩)
전달자 인증토큰 전달자에 대한 액세스 제어를 제공하는 프로세스(bearer)
전달자 토큰은 서버가 로그인 요청에 대한 응답으로 생성하는 암호화된 문자열
클라이언트가 리소스에 액세스하기 위해 요청 헤더에 토큰을 넣어 전송
API 키서버가 생성한 고유 값을 최초 클라이언트에 할당하여 고유한 API 키를 사용하여 본인을 검증하는 프로세스
(클라이언트가 키를 전송하므로 네트워크 도난에 취약)
OAuth모든 시스템에 대해 암호와 토큰을 결합하는 매우 안전한 액세스 방식

클라이언트 요청(Request)

분류항목내용
URI고유 리소스 식별자(Uniform Resource Identifier)
MethodGET리소스 조회
POST리소스 생성
PUT리소스 수정
DELETE리소스 삭제
HTTP HeaderDataHTTP 메소드가 성공적으로 작동하기 위한 데이터
Parameter작업 수행을 위해 서버에 제공하는 정보
1) URL 세부정보를 지정하는 경로
2) 리소스에 대한 추가 정보 요청하는 쿼리
3) 클라이언트를 빠르게 인증하는 쿠키

서버 응답(Response)

분류항목내용
Status Code200일반 성공 응답
201POST 메소드 성공 응답
400서버가 처리할 수 없는 잘못된 요청
404리소스를 찾을 수 없음
Body리소스 표현(XML, JSON)
Header응답에 대한 헤더 또는 메타데이터

HTTP 상태 코드를 자세히 알고 싶다면?
https://hahahoho5915.tistory.com/55


Style Guide

  1. URI에 동사와 대문자 대신 명사와 소문자 사용
    Bad Ex) klasis.com/Running
    Good Ex) klasis.com/run

  2. URI에 계층 간 구분자를 슬래시(/)로 사용하되 마지막에는 포함하지 않음
    Bad Ex) klasis.com/houses/rooms/
    Good Ex) klasis.com/houses/rooms

  3. URI에 언더바(_) 대신 하이폰(-) 사용

  4. 파일 확장자에 URI를 포함하지 않음
    Bad Ex) klasis.com/photo.jpg
    Good Ex) klasis.com/photo

  5. 행위를 포함하지 않음
    Bad Ex) klasis.com/show-article/1
    Good Ex) klasis.com/article/1

  6. URI의 Document 이름에 단수 명사 사용

  7. URI의 Collection 이름에 복수 명사 사용

  8. URI의 Store 이름에 복수 명사 사용

  9. URI에 HTTP Method 사용하지 않음
    Bad Ex) GET klasis.com/delete/article/1
    Good Ex) DELETE klasis.com/article/1

References

profile
스타트업에서 동료들과 함께 공부하고 연구한 기술을 끄적끄적

0개의 댓글