Web

[Web] Restful API

Ella_K 2022. 8. 21. 17:54

✅ API란?

  • 다른 소프트웨어 시스템과 통신하기 위해 따라야하는 규칙을 정의
  • 개발자는 다른 애플리케이션이 프로그래밍 방식으로 애플리케이션과 통신할 수 있도록 API를 표시하거나 생성

 

✅ 클라이언트

  • 웹에서 정보에 접근하려는 사용자
  • API를 사용하는 사람 또는 소프트웨어 시스템

 

✅ 리소스

  • 서버가 클라이언트에게 제공하는 정보
  • 이미지, 동영상, 텍스트, 숫자 또는 모든 유형의 데이터
  • 조직은 API를 사용하여 리소스를 공유하고 보안, 제어 및 인증을 유지하면서 웹 서비스를 제공
  • API는 특정 내부 리소스에 액세스 할 수 있는 클라이언트를 결정하는 데 도움이 됨

 

✅ REST란?

  • API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처
  • REST 아키텍처 스타일을 따르는 API를 REST API 라고 한다.
  • REST 아키텍처를 구현하는 웹서비스를 RESTful 웹 서비스라고 한다.

 

✅ REST의 특징

  1. Uniform interface
    • HTTP 표준 방식을 활용한다면, URI로 지정한 리소스에 대한 동작이 어떤 플랫폼에서도 동일하다.
    • API 정의를 HTTP + JSON으로 정했다면, 특정 언어나 기술에 종속 받지 않고 사용이 가능하다.
  2. Stateless
    • 세션이나 쿠키 정보(작업을 위한 상태 정보)를 따로 관리하지 않는다.
    • API 서버는 단지 들어오는 요청만을 처리한다.
    • 서비스의 자유도가 높아지고 서버에서 불필요한 정보를 관리하지 않아도 된다.
  3. Caching
    • HTTP가 가진 캐싱 기능을 사용할 수 있다.
    • RESTful 웹 서비스는 서버 응답 시간을 개선하기 위해 클라이언트 또는 중개자에 일부 응답을 저장하는 프로세스인 캐싱을 지원합니다.
  4. Self descriptiveness
    • API 메시지만 보아도 무엇을 의미하는지 알 수 있다.
  5. Client - Server
    • 클라이언트와 서버의 역할이 명확히 구분되어 있어 서로에 대한 의존성이 줄어든다.
    • REST 서버는 API를 제공하고, 클라이언트는 사용자 인증, 컨텍스트 등을 관리한다.
  6. Hierarchical system
    • 다중 계층으로 구성할 수 있어 보안, 암호화 계층을 추가할 수 있다.

 

✅ Rest API method:

  • Get : 클라이언트가 서버의 리소스에 접근해야할 때 사용한다. (Read)
  • POST : 클라이언트가 서버에 데이터를 전송해 서버에 저장하거나, 확인이 필요할 때 사용한다. (Create)
  • PUT : 클라이언트가 서버에 데이터를 전송해 서버의 기존 리소스를 갱신 할 때 사용한다. 모든 리소스를 갱신한다. (Update)
  • Patch: 클라이언트가 서버에 데이터를 전송해 서버의 기존 리소스를 갱신 할 때 사용한다. 부분적인 리소스를 갱신한다. (Update)
  • Delete: 클라이언트가 서버에 delete를 요청해 리소스를 제거한다. 이 요청은 서버의 상태를 변경할 수 있지만, 사용자에게 적절한 인증이 없으면 요청은 실패한다. (Delete)

 

✅ Restful API 작동 방식:

  1. 클라이언트가 서버에 요청을 전송한다. 클라이언트가 API문서에 따라 서버가 이해하는 방식으로 요청 형식을 지정한다.
  2. 서버가 클라이언트를 인증하고 해당 요청을 수행할 수 있는 권한이 클라이언트에 있는지 확인한다.
  3. 서버가 요청을 수신하고 내부적으로 처리한다.
  4. 서버가 클라이언트 응답을 반환한다. 응답에는 요청이 성공했는지 여부를 클라이언트에 알려주는 정보가 포함된다. 응답에는 클라이언트가 요청한 모든 정보도 포함된다.

 

✅ URI 설계시 주의점

  • 슬래시(/)는 계층 관계를 나타내는데 사용한다.
  • URI 마지막 문자로 슬래시(/)를 포함하지 않는다.
  • 하이픈(-)을 사용하여 URI 가독성을 높인다.
  • 밑줄(_)은 사용하지 않는다.
  • 파일 확장자(.jpg, .png 등)는 포함하지 않는다.

 


Source

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

 

RESTful API란 무엇인가? - RESTful API 초보자 가이드 - AWS

 

aws.amazon.com

https://hoyeonkim795.github.io/posts/restful_api/

 

[Web] REST의 특징과 RESTful API

RESTful API

hoyeonkim795.github.io