본문 바로가기
웹개발 · IT 지식

[웹개발] API, RESTFUL API, End Point 정리

by 메이플 🍁 2022. 7. 8.

API

1. API란

  • Application Programming Interface의 약어
    • 애플리케이션: 고유한 기능을 가진 모든 소프트웨어
    • 인터페이스: 두 애플리케이션 간의 서비스 계약 (계약에는 요청과 응답으로 통신하는 방법을 정의한다)
  • 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘을 말한다
  • 하나의 프로그램에서 다른 프로그램으로 데이터를 주고받기 위한 규칙을 말한다 (이곳에서 이야기하는 규칙은 코드를 의미한다)
  • 클라이언트가 서버에 특정 데이터(Resource)를 생성, 조회, 수정, 삭제를 요청할때 사용하는 코드를 말한다

 

2. API의 종류

1) Public API (open API)

누구나 사용가능한 공개된 API
회사 내부에서 사용하는 API(Private API)를 외부에 공개하는 경우 오픈 API(Public API)라고 한다

2) Private API

기업 내부에서 시스템과 데이터를 연결하는 데만 사용하는 공개되지 않은 API

3) Partner API

파트너십을 지원하기 위해 권한이 부여된 외부 개발자만 액세스할 수 있는 API로 즉 정해진 사람만 사용이 가능한 API

 

3. 웹 API란

  • 웹 서버와 웹 브라우저 간의 애플리케이션 처리 인터페이스
  • 모든 웹 서비스는 API이지만 모든 API가 웹 서비스는 아니다
  • 웹 API는 REST API라는 원칙을 사용해 작성하면 좋다

 

4. API 엔드포인트란?

API 통신 시스템의 최종 접점을 말한다

 

5. API의 작동방식 4가지

API가 생성된 시기와 이유에 따라 API는 다섯가지 방식으로 작동할 수 있다: 

1) SOAP API 2) RPC API 3) Websocket API 4) REST API 5) GraphQL(REST API의 대안으로 떠오르고 있음)

 

여기서 오늘날 웹에서 볼 수 있는 가장 많이 사용되고 유연한 API인 REST API만을 알아볼 예정이다.

 

6. API 사용예시

  • 기상청에서 제공하는 날씨 API
  • 구글 맵 API
  • 페이팔 결제 API
  • 소셜 미디어 로그인 API

 

REST API

1. REST API란?

  • API가 작동하는 방식중 한 종류로 웹 API는 REST API라는 원칙을 주로 사용해 작성한다
  • REST는 Representational State Transfer의 줄임말이다
  • 클라이언트와 서버가 HTTP 프로토콜을 사용해서 데이터를 교환 할때 정해진 규칙을 말한다

여기서 잠깐!! HTTP 프로토콜이란?

  • HTTP(Hypertext Transfer Protocol)는 인터넷상에서 데이터를 주고 받기 위한 서버/클라이언트 모델을 따르는 프로토콜이다
  • 하이퍼텍스트(Hypertext)를 기반으로 데이터를 전송(Transfer) 하는 통신 규약(Protocol)을 말한다
  • 클라이언트에서 요청(request)을 보내면 서버는 요청을 처리해서 응답(response)한다
  • 클라이언트 소프트웨어(Chrome, Firefox, Safari 등의 웹브라우저)는 URI를 이용하여 자원의 위치를 찾는다
  • * 여기서 자원(Resource)은 HTML 문서, 이미지, 동영상, 오디오, 텍스트 문서 등 모든 것이 될 수 있다

예시

https://maplecoding.tistory.com/index.html

1. https : http 전송 프로토콜

2. maplecoding.tistory.com : 자원의 인터넷상 주소

3. index.html : 요청할 자원 이름 (URI)

 

2. REST API 작성법

아래의 3가지를 포함해 Restful하게 작성해준다.

1) 요청방식 (method)

클라이언트가 서버에 리소스를 생성, 조회, 수정, 삭제를 요청할때 각각 다른 메서드를 사용해준다:

  • Create(생성): post 메서드 (default 메서드)
  • Read(조회): get 메서드
  • Update(수정): put 메서드 (전체 내용 교체) / patch 메서드 (부분 변경)
  • Delete(삭제): delete 메서드

클라이언트가 get 메서드 사용해 서버에 정보 조회를 요청하면 서버가 요청된 데이터를 JSON이라는 포맷을 통해 전달한다

2) 무슨자료 요청할것인지 (Endpoint)

어떤 데이터를 요청할것인지

3) 파라미터 (parameter)

자료요청에 필요한 추가정보

 

4. Restful한 API라는것은 무엇일까?

Restful하게 만든 API는 요청을 보내는 주소만으로도 대략 이게 어떤 요청인지 파악이 가능하다

메서드를 목적에 따라 구분해 만든 API를 restful하게 만든 API라고 말할 수 있다

즉 REST를 구현하는 웹 서비스를 RESTful하다 라고 할 수 있다

 

5. REST API 문서화 도구

swagger-ui

 

정리

API

  • 어플리케이션 간에 지정된 형식으로 요청과 응답을 할 수 있도록 연결하는 것

REST API

  • HTTP 요청을 할때 어떤 URI에 어떤 메서드를 사용할지에 대한 개발자들 사이에 약속
  • 클라이언트와 서버가 HTTP 프로토콜을 사용해서 데이터를 교환 할때 정해진 규칙
  • 인터넷 식별자 URI와 HTTP를 기반으로 브라우저간 호환성이 좋은 JSON 형식을 사용다른 컴퓨터나 프로그램과의 소통을 쉽게 할 수 있게 해주는 인터페이스

REST API 장점

  • 각 요청이 어떤 정보나 동작을 위한 것인지 그 모습 자체만으로 추론이 가능하다

 


 

📘 참조

댓글