Web Development

API , REST , REST API

doriver 2022. 5. 29. 14:39

인간  --  UI  --  컴퓨터(소프트웨어)  --  API  --  소프트웨어(컴퓨터)

컴퓨터와 인간의 소통을 위한 UI ( user interface )

소프트웨어들 사이의 소통을 위한 API ( application programming interface )

( interface : 접속, 접점, 상호작용 할수 있도록 연결해 주는거 )
( application : 응용(적용), 응용프로그램 )

 

 

REST API는 네트워크에서 '데이터'를 받아오기 위한 것이고 프로그램에서의 API는 '코드', 나아가 코드뭉치인 라이브러리를 받아오기 위해 쓰이기도 한다.

 

API ( application programming interface )

소프트웨어가 다른 소프트웨어로부터 지정된 형식으로 요청,명령을 받을수 있는 수단

애플리케이션이 통신(요청과 응답)하기 위해 따라야하는 규칙이다.

규칙에 맞게 요청을 보내면 규칙대로 응답을 받는다.

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

예) 기상청의 소프트웨어 시스템에는 일일 기상 데이터가 들어 있다. 휴대폰의 날씨 앱은 API를 통해 이 시스템으로 부터 데이터(?)를 받아와, 휴대폰에 매일 최신 날씨 정보를 표시한다.

웹 API

웹 서버와 웹 브라우저 간의 API
모든 웹 서비스는 API이다.

서버에서 미리 만들어놓은 기능이자 약속 ( ~로 요청주고 ~가져오면 응답으로 ~알려줄께 )
HTTP상 두 노드가 소통할수 있게 함

 

REST ( Representational State Transfer , 전송에서 대표적인 상태)

네트워크에서 통신(웹 기반의 전송)을 구성할 때 이런 구조로 설계하라는 지침 ( 네트워크 소프트웨어 아키텍처 ) 

정도로 볼 수 있다. 그 제약들을 준수했을 때 그 시스템은 RESTful하다고 한다.

REST API ( RESTful API )

REST아키텍처 스타일의 디자인 원칙을 준수하는 웹 API

 

정보들이 주고받아지는데 있어서, 개발자들 사이에 널리 쓰이는 일종의 '형식'
이 형식에 맞춰서 기능들을 만들어 내면 됨

 

HTTP요청을 보낼때, 각 요청이 어떤 동작이나 정보를 위한것인지를, 그 요청의 모습 자체로 추론 가능하도록 하는, 개발자들 사이에 널리 지켜지는 약속(형식) ( 서비스를 어떤 개발자 혼자 만드는게 아니다 )

 

URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고,
HTTP Method(POST, GET, PUT, DELETE)를 통해 해당 자원(URI)에 CRUD Operation이 적용됨을 알린다


웹 프로토콜(HTTP)을 통해 주고 받는다. 다시 말해, GET/POST 등의 형태로 필요한 인수를 전달받으면 거기에 맞는 결과값을 JSON이나 XML 형태로 전송해준다.

 

http:// 서버위치 / api주소 ? 데이터

REST의 구성요소 - 자원(resource), 메소드(method), 메시지(message)

자원

URI 의미
https://namu.wiki/w/A A 문서 조회
https://namu.wiki/history/A  A 문서의 변경기록 조회

 

메소드  - HTTP 메소드를 사용

http method 설명 crud
POST 새로운 데이터 생성 Create
GET  데이터 조회 Read
PUT  정보를 통째로 바꿀때 Update
PATCH 정보중 일부를 바꿀때 Update
DELETE  정보 삭제 Delete

 

메시지 - HTTP응답코드