Programming

; develop a program

DevStudy

[Server] API & REST API

Clloud_ 2023. 6. 4. 09:01
반응형

이번 포스팅에서는 애플리케이션을 프로그래밍하는데 쓰이는 인터페이스인 API와, 이 API를 작성하는 규칙이라고 할 수 있는 REST API에 대하여 공부를 해보고자 한다.

 


API란

API(Application Programming Interface)는 애플리케이션 간의 상호작용을 위한 인터페이스이다.

인터페이스는 두 애플리케이션 간의 서비스 계약이라고 할 수 있다.
이 계약은 요청과 응답을 사용하여 두 애플리케이션이 서로 통신하는 방법을 정의한다.

 

API 구조


API는 정의된 규약에 따라 요청과 응답을 주고받는 방식으로 작동하며, 개발자들은 이를 통해 데이터를 요청하거나 조작하고, 기능을 실행하고, 서비스에 접근할 수 있다.

또한 API 문서에는 개발자가 이러한 요청과 응답을 구성하는 방법에 대한 정보가 들어 있다.

즉, API는 데이터를 원활하게 주고받기 위한 방법이자, 주고받을 수 있는 데이터의 형식을 정하는 매뉴얼이라고 할 수 있다.

 


API의 역할

기능 제공

  • API는 애플리케이션 또는 서비스의 기능을 다른 애플리케이션에 제공한다.
  • 다른 애플리케이션은 해당 API를 사용하여 원하는 기능을 호출하고 실행할 수 있다.
    예를 들어, 지도 서비스의 API를 사용하여 애플리케이션에 지도를 표시하거나 경로를 계산할 수 있다.


즉, API는 애플리케이션과 기기가 데이터를 원활히 주고받을 수 있도록 돕는 역할을 한다.

 

자원 공유

  • API는 애플리케이션 사이에서 데이터나 자원을 공유하는 데 사용된다.
  • 애플리케이션이 데이터를 다른 애플리케이션에 전송하거나 다른 애플리케이션으로부터 데이터를 받기 위해 API를 사용할 수 있다.
  • 이때 데이터베이스에는 소중한 정보들이 저장되는데, 모든 사람들이 이 데이터베이스에 접근하지 못하게 API는 서버와 데이터베이스에 대한 출입구 역할을 하며, 허용된 사람들에게만 접근성을 부여해 준다.

 

표준화

  • API는 소프트웨어 개발에 일관성과 표준화를 제공한다.
  • 개발자들은 API를 사용하여 코드를 작성하고, 이를 다른 애플리케이션과 공유할 수 있다.
  • 이렇게 함으로써, API는 다른 애플리케이션 간의 상호운용성을 향상하고 개발 시간을 단축할 수 있다.


즉, API는 모든 접속을 표준화하기 때문에 기계/ 운영체제 등과 상관없이 누구나 동일한 액세스를 얻을 수 있다.

쉽게 말해, API는 범용 플러그처럼 작동한다고 볼 수 있다.

 


REST API란

REST API(Representational State Transfer Application Programming Interface)는 웹 서비스를 개발하기 위한 소프트웨어 아키텍처 스타일 중 하나이다.
REST API는 인터넷 식별자(URI)와 HTTP 프로토콜을 기반으로 하며, 데이터 포맷으로는 브라우저 간 호환성이 좋은 제이슨(JSON)을 사용한다.

 

REST API의 구조


REST API는 클라이언트와 서버 간의 통신을 가능하게 하며 아키텍처를 만들 수 있게 해 준다.
클라이언트는 HTTP 요청을 통해 서버에게 자원을 요청하거나 수정, 삭제할 수 있는데, 서버는 이러한 요청을 받아들여서 적절한 응답을 반환한다.
REST API는 간결하고 확장 가능한 인터페이스를 제공하여 다양한 클라이언트(웹 애플리케이션, 모바일 앱 등)에서 동일한 서비스를 활용할 수 있도록 한다.

 

REST API에서 사용되는 주요 HTTP 메서드

  • GET
    • 서버로부터 리소스(데이터)를 요청하는 메서드로, 주로 조회(read) 작업에 사용된다.
    • GET 요청은 서버의 상태를 변경하지 않고, 요청한 리소스를 읽어오는 역할을 한다.
      예를 들어, 게시물 목록 조회나 특정 게시물 조회에 사용된다.

  • POST
    • 서버에 새로운 리소스를 생성하는 메서드로, 주로 생성(create) 작업에 사용된다.
    • POST 요청은 서버에 데이터를 전송하여 새로운 리소스를 만들거나 처리를 요청합니다.
      예를 들어, 새로운 게시물 작성이나 사용자 등록에 사용됩니다.

  • PUT
    • 서버에 존재하는 리소스를 수정하는 메서드로, 주로 업데이트(update) 작업에 사용된다.
    • PUT 요청은 요청 본문에 변경된 리소스 데이터를 포함하고, 해당 리소스를 요청 URI에 지정된 위치에 업데이트한다.
      예를 들어, 게시물 수정이나 사용자 정보 업데이트에 사용된다.

  • PATCH
    • 서버에 존재하는 리소스의 일부를 수정하는 메서드로, 주로 부분적인 업데이트(partial update) 작업에 사용된다.
    • PATCH 요청은 변경할 리소스의 일부만 요청 본문에 포함하여 서버에 전송한다.
      예를 들어, 게시물의 일부 내용 수정에 사용된다.

  • DELETE
    • 서버로부터 리소스를 삭제하는 메서드로, 주로 삭제(delete) 작업에 사용된다.
    • DELETE 요청은 요청 URI에 지정된 리소스를 삭제한다.
      예를 들어, 게시물 삭제나 사용자 삭제에 사용된다.

 


REST API의 역할

데이터 제공

  • REST API는 클라이언트에게 데이터를 제공하는 역할을 한다.
  • 클라이언트는 HTTP 요청을 통해 REST API에게 데이터를 요청하고, API는 이에 응답하여 데이터를 제공한다.
    예를 들어, 소셜 미디어 애플리케이션의 REST API는 사용자 프로필, 게시물, 친구 목록 등의 데이터를 제공할 수 있다. 

데이터 생성 및 업데이트

  • REST API를 사용하여 클라이언트는 데이터를 생성하거나 업데이트할 수 있다.
  • 클라이언트는 HTTP POST 또는 PUT 요청을 사용하여 데이터를 API에게 전송하고, API는 이를 처리하여 데이터를 생성하거나 업데이트한다.
    예를 들어, 전자 상거래 애플리케이션의 REST API는 주문 생성, 결제 정보 업데이트 등의 기능을 제공할 수 있습니다. 

데이터 수정 및 삭제

  • REST API는 클라이언트가 데이터를 수정하거나 삭제할 수 있는 기능을 제공한다.
  • 클라이언트는 HTTP PUT 또는 DELETE 요청을 사용하여 데이터 수정 또는 삭제를 요청하고, API는 이를 처리하여 데이터를 수정하거나 삭제한다.
    예를 들어, 블로그 플랫폼의 REST API는 글 수정, 댓글 삭제 등의 작업을 처리할 수 있다. 

인증과 권한 부여

  • REST API는 보안 기능을 포함하여 클라이언트의 인증과 권한 부여를 처리할 수 있다.
  • API는 클라이언트의 인증 정보를 확인하고, 요청된 작업을 수행할 수 있는 권한을 가진 클라이언트에게만 데이터를 제공하거나 허용한다.
    예를 들어, 사용자 인증을 위해 OAuth나 JWT(JSON Web Token)과 같은 인증 메커니즘을 사용할 수 있다. 

에러 처리

  • REST API는 잘못된 요청 또는 예외 상황에 대한 적절한 에러 처리 기능을 제공한다.
  • 클라이언트가 잘못된 요청을 보낼 경우, API는 적절한 에러 응답을 반환하여 클라이언트에게 오류 정보를 전달한다.

 


반응형

'DevStudy' 카테고리의 다른 글

[WEB] 크로미움(Chromium)  (0) 2023.06.08
[WEB] CLI와 WEB의 작동방식 차이  (0) 2023.06.05
[Network] 네트워크 연결 스토리지(NAS)  (0) 2023.06.04
[Network] 라우팅(Routing)  (0) 2023.06.01
[Network] 트래픽(Traffic)  (0) 2023.05.30