본문 바로가기

Dev

API와 JSON

API

  • 클라이언트와 서버가 요청과 응답을 주고 받을 수 있게 만든 체계
  • 클라이언트에서 서버로 요청(Request)을 보내고, 서버에서 클라이언트로 응답(Response)을 전달

↓'API 게이트웨이 설명' 더보기

더보기

웹 API는 클라이언트와 웹 리소스 사이의 게이트웨이라고 할 수 있다.

클라이언트

웹에서 정보에 액세스하려는 사용자(API를 사용하는 사람, 소프트웨어 시스템 등)

ex. 개발자는 날씨 시스템에서 날씨 데이터에 액세스하는 프로그램 작성할 수 있으며,
      사용자가 날씨 웹 사이트를 직접 방문할 때 브라우저에서 동일한 데이터에 액세스할 수 있음

리소스

리소스는 다양한 애플리케이션이 클라이언트에게 제공하는 정보(이미지, 동영상, 텍스트, 숫자 등 모든 유형의 데이터)
서버에서 클라이언트에 리소스를 제공하며, API를 사용하여 리소스를 공유(보안, 제어, 인증 유지)하면서 웹 서비스를 제공함

 

CRUD

  • 데이터를 다룰 때 기준이 되는 요청
  • Create / Read / Update / Delete

 

RESTful API(Representational State Transfer)

Background

초기 CRUD 별로 주소를 만들었으나, 주소가 너무 많아져서 관리하기 힘들어졌고(주소가 겹치는 문제 등..)

이전보다 주소의 개수를 줄여서 CRUD를 하나의 주소로 관리함

  • Create : POST
  • Read : GET
  • Update : PUT(전체) / PATCH(일부)
  • Delete : DELETE

요청을 보낼 때, 어떤 요청을 보냈는지 파악할 수 있는 메소드(Method)를 붙여 전송함.

**메소드(Method) : 수학의 '함수'와 같은 의미로 x 입력값(='변수', '파라미터(Parameter)')에 따라 y 결과가 나옴

 

↓'RESTful API 설명' 더보기

더보기

REST와 RESTful 정의
- REST는 API 작동 방식에 대한 조건을 부과하는 소프트웨어 아키텍처
- API 개발자는 여러 아키텍처를 사용하여 API를 설계할 수 있으며, REST 아키텍처 스타일을 따르는 API를 REST API라고 함

- REST 아키텍처를 구현하는 웹 서비스를 RESTful 웹 서비스라고 함

REST 장점
1. REST 기반 아키텍처를 사용하여 대규모의 고성능 통신을 안정적으로 지원할 수 있음

2. 쉽게 구현하고 수정할 수 있어 모든 API 시스템을 파악하고 여러 플랫폼에서 사용할 수 있음

 

RESTful 장점

확장성 : REST API를 구현하는 시스템은 REST가 클라이언트-서버 상호 작용을 최적화하기 때문에 효율적으로 크기 조정 가능

유연성 : RESTful 웹 서비스는 완전한 클라이언트-서버 분리를 지원하며, 서버 애플리케이션의 플랫폼 또는 기술 변경은 클라이언트 애플리케이션에 영향을 주지 않음

독립성 : 사용되는 기술과 독립적으로 API 설계에 영향을 주지 않고 다양한 프로그래밍 언어로 클라이언트 및 서버 애플리케이션을 모두 작성할 수 있으며, 통신에 영향을 주지 않고 양쪽의 기본 기술을 변경 가능

 

[참고]응답 상태 코드

모든 HTTP 응답 코드는 5개의 분류(클래스)로 구분되며, 응답 상태를 알 수 있음

상태코드 첫번째 숫자는 응답의 클래스를 정의함

  • 100번대 : 조건부 응답
  • 200번대 : 성공
  • 300번대 : 리다이렉션 완료
  • 400번대 : 요청 오류
  • 500번대 : 서버 오류

 

SDK(Software Development Kit)

다른 소프트웨어의 기능이 필요할 때, SDK를 설치하여 애플리케이션 개발에 필요한 도구와 라이브러리를 제공받을 수 있음

 

Open API

각 플랫폼 서버에서 제공하는 다양한 기능을 일반 사람들이 쓸 수 있게 오픈

회사 입장에서 플랫폼을 대중화하는데 도움이 되며, 특정 횟수 이상 혹은 프리미엄 기능으로 수익 창출의 비즈니스 모델로 사용하기도 함.

 

JSON

요청을 보내거나 응답을 받을 때, 각 요청과 응답마다 형식을 통일

중괄호로 시작하며, 키(Key)와 값(Value)으로 이루어져 있음

키와 값은 콜론(:)으로 구분함

ex: 

{

  키1(Key): 값1(Value),

  키2(Key): 값2(Value)

}

 

{

  "id": "miit31",

  "pw": "1234"

}

 

여러개의 정보를 불러와야 할때는 배열(Array)를 사용

JSON에서는 배열을 표시할 때 대괄호([)를 사용

ex:

{

  키1(Key): 값1(Value),

  키2(Key): 값2(Value),

  키3(Key): [값3, 값4, 값5]

}

 

{

  "category": "음료",

  "sort": "desc",

   "items": ["카페모카", "카페라떼", "아메리카노"]

}

 

클라이언트와 서버는 요청과 응답을 주고받고, 그때 필요한 데이터들은 JSON 형식으로 주고받는다.

'Dev' 카테고리의 다른 글

데이터베이스  (1) 2024.03.23
웹과 애플리케이션  (3) 2024.03.20
네트워크, 클라이언트, 서버  (1) 2024.03.19
프로그래밍 언어와 운영체제(OS)  (5) 2024.03.17
서버의 종류  (5) 2024.03.12