01.09.월(API _활용예시 이해필요)

유희선·2023년 1월 8일
0

TIL

목록 보기
19/29
post-thumbnail

1. API (Applicaion Programming Interface)
1) 정의

-애플리케이션끼리 연결해주는 매개체이자 약속
-응용프로그램에서 사용할 수 있도록,
운영체제나 프로그래밍 언어가 제공하는 기능을
제어할 수 있도록 만드는 인터페이스
=애플리케이션에서 데이터를 읽거나 쓰기 위해 사용하는 인터페이스
=애플리케이션과 사람이 소통할 수 있도록 연결해주는 장치

2) 작성 의미
-프론트엔드에서
원하는 기능을 수행하고 URL과 인터페이스 제공
-작성할 API에서 원하는 데이터를 받아 DB에 D 저장,
저장되어 있는 D를 읽어서
웹 어플리케이션(프론트엔드)에 데이터를 제공하는 행위

3) 종류
(1) Private API
-제 3자에게 공개되지 않음
(2) Public API
-제 3자에게 공개
_예시) 기상청 날씨 정보

4) 활용예시 : 이해 되지 않음
(1) 플랫폼

-많은 플랫폼에서 자사 API를 활용할 수 있도록
-HTTP API (protocol)
-HTTP 통신이 아닌 저사양, 저전력 환경에 적합한 프로토콜 사용
(2) Class나 함수
-통신 protocol 레벨이 아닌
Class함수와 같은 소스 코드 레벨이 될 수 있음



2. REST API

(1) REST(Representational State Transfer)
-월드 와이드 웹과 같은 분산 하이퍼미디어 시스템을 위한
소프트웨어 아키텍처의 한 형식

(2) 정의
-URL, Headers, Method 등
-HTTP 요청을 보낼 때, 어떤 URI에 어떤 메소드를 사용한지
네트워크 표현 수단을 사람이 봐도 이해하기 쉬운 표현으로 정의
-각 요청이 어떤 동작이나 정보를 위한 것인지를
그 요청의 모습 자체로 추론 가능
-URI는 동사가 아닌 명사들로 이루어져야 함
='REST 아키텍처'라는 규칙을 따르는 API

(3) 구성
① 자원 (Resouce) - URL
② 행위 - HTTP method
③ 표현
-해당 자원을 어떻게 표현할지 설명
-보통 JSON, XML 같은 형식 이용
-HTTP에서 Content-Type 이라는 헤더를 통해 표현 방법 서술

(4) 관련코드

//첫번째 예시
router.get('/books', (req, res) => {
	res.json({ success: true, data: getAllBooks() });
});
// REST API = '/books' 
//두번째 예시

https:// (도메인)/class

{
  "results" : [
    {"idx":1, "name":'예비반'},
    {"idx":2, "name":'초급반'},
    {"idx":3, "name":'중급반'},
    {"idx":4, "name":'고급반'}
  ]

}

(5) 자세한 개념 공부 희망 시,
restful api design guidelines

0개의 댓글