본문 바로가기
IT 공부/CS ( compute system)

Restful API

by woohot 2023. 4. 19.

restful API 얘기는 많이 들어 봤을 것이다.

 

기본 API에 Restful 개념을 합치거라 생각한다.

 

일단 API먼저 보자면 

 

 

API란

 

API는 정의 및 프로토콜 집합을 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘입니다.
예를 들어, 기상청의 소프트웨어 시스템에는 일일 기상 데이터가 들어 있습니다.
휴대폰의 날씨 앱은 API를 통해 이 시스템과 ‘대화’하여 휴대폰에 매일 최신 날씨 정보를 표시합니다.

 

 

 

 

 

REST 란
Representational State Transfer 의 약자로 아래의 구성을 갖는다

  자원( RESOURCE ) - URI

  행위( Verb ) - HTTP METHOD

  표현( Representations )

 

REST 특징

1) Uniform Interface( 인터페이스 일관성 )

   - URI로 지정한 Resource에 대한 조작을 통일되고 한정적인 인터페이스로 수행

   - HTTP 표준 프로토콜에 따르는 모든 플랫폼에 사용가능

 

2) Stateless ( 무상태성 )

   - HTTP 프로토콜은 Stateless Protocol 이므로 REST역시 무상태성을 갖음.

   - Client의 centext를 Server에 저장하지않는다.

   - Server는 각각의 요청을 완전히 별개의 것으로 인식하라고 처리한다.

 

3) Cacheable ( 캐시 처리 가능 )

   - 웹 표준 HTTP프로토콜을 그대로 사용하므로 웹에서 사용하는 기존의 인프라를 그대로 활용 가능

   - 대량의 요청을 효율적으로 처리하기 위해 캐시 요구

   - 캐시 사용을 통해 응답시간이 빨라지고 REST Server 트랜잭션이 발생하지 않기 때문에 전체

      응답시간, 성능, 서버의 자원 이용률을 향상 가능

 

4) Layerd System ( 계층화 )

   - Client는 REST API Server만 호출.

   - REST Server 는 다중 계층으로 구성될 수 있다.

   - PROXY, 게이트웨이 같은 네트워크 기반의 중간 매체를 사용 가능

 

5) Code-On-Demand ( optional )

   - Server로 부터 스크립트를 받아서 Client에서 실행한다.

   - 반드시 충족할 필요는 없다.

 

6) Server-Client ( 서버-클라이언트 구조)

   - 자원이 있는 쪽이 Server , 자원을 요청하는 쪽이  Client가 된다.

   - 서로 간 의존성이 줄어든다.

 

 

REST API 설계 기본 규칙

참고 리소스 원형

 - 도큐먼트 : 객체 인스턴스나 데이터베이스 레코드와 유사한 개념

 - 컬렉션 : 서버에서 관리하는 디렉토리라는 리소스

 - 스토어 : 클라이언트에서 관리하는 리소스 저장소

 

1. URI 는 정보의 자원을 표현해야 한다.

   - 명사, 소문자 사용

   - 도큐먼트 이름으로는 단수 명사 사용

   - 컬렉션 이름으로는  복수 명사

   - 스토어 이름으로는 복수 명사

    ex) GET /Member/1(x)  -> GET /members/1 (0)

 

2. 자원에 대한 행위는 HTTP Method( Get, Post, Put, Patch, Delete ) 로 표현

   - URI 에 HTTP Method (x)

     ex)  GET /members/insert/1  -> POST /members/1

   

   - URI 에 행위에 대한 동사 표현이 들어가면 안된다.  

     ex) GET /members/show/1 -> GET /members/1

           GET /members/insert/2 -> POST /members/2

 

   - 경로 부분 중 변하는 부분은 유일한 값으로 대체한다. 

 

 

REST API 설계 규칙

1. 슬래시 구분자(/ ) 는 계층 관계를 나타내는데 사용

2. URI 마지막 문자로 슬래시(/) 를 포함하지 않는다.

   - URI 에 포함되는 모든 글자는 리소스의 유일한 식별자로 사용

       URI 가 다르다는 것은 리소스가 다르다는 것이고, 역으로 리소스가 다르면 URI도 달라야 함

3. 하이픈(-) 은 URI 가독성을 높이는데 사용

   - 불가피하게 긴 URI경로를 사용하게 된다면 하이픈을 사용해 가독성을 높인다.

4. 언더바는 URI에 사용하지 않는다. 가독성 저해

5. URI 경로에는 소문자가 적합

6. URI 에 파일 확장자를 포함하지 않는다.

 

 

 

 

#참고 

https://www.redhat.com/en/topics/api/what-is-a-rest-api

 

What is a REST API?

A REST API (also known as RESTful API) is an application programming interface that conforms to the constraints of REST architecture. REST stands for representational state transfer.

www.redhat.com

https://aws.amazon.com/ko/what-is/api

 

API란 무엇인가요? - 애플리케이션 프로그래밍 인터페이스 설명 - AWS

GraphQL은 API용으로 특별히 개발된 쿼리 언어로서, 클라이언트에게 요청한 데이터만 제공하는 것을 우선으로 합니다. 또한 API를 빠르고 유연하며 개발자 친화적으로 만들도록 설계되었습니다. RES

aws.amazon.com

 

https://gmlwjd9405.github.io/2018/09/21/rest-and-restful.html

 

[Network] REST란? REST API란? RESTful이란? - Heee's Development Blog

Step by step goes a long way.

gmlwjd9405.github.io

 

'IT 공부 > CS ( compute system)' 카테고리의 다른 글

함수형 프로그래밍  (0) 2023.05.02

댓글