REST-API 개념정리

2021. 10. 8. 18:33개발

API 란  ?   (Application Programming interface)

 

다른 프로그램을

내가 제어할려고 하는데 그방법을 모르겠음

 

하지만 그 프로그램은 자신을 제어할수있는 방법을 명시해놓은 인터페이스를 가짐.

 

api 는 내가 대상 프로그램의 로직을 모르더라도 정의되어 있는 기능을 쉽게 사용하게 해주는거임

 

결론 : 다른프로그램 작동하게하는 리모컨이다 ㅅㄱ .

 

 

 

REST 란 ? 

 

Representational State Transfer 의 줄임말

 

자원 상태 전달

 

자원의 이름으로 구분하여 해당 자원의 상태를 교환하는것을 의미 

ex) 자원 = 시간  // 상태 = 지금내가 이거 쓰는시간 // 배고파지는 시간  = 같은 시간이지만 상태는 확실히 다름  ㅇㅅㅇ 

 

REST는 서버와 클라이언트의 통신방식중 하나. 규약(약속)이라기보단 아키텍쳐(구성)에 가까움

 

http uri*Uniform Resource identifier 를 통해 자원을 명시하고 HTTP Method를 통해 자원을 교환하는것

data 골라잡고 서버와 교환함 잡고 교환 very 직관적인 교환방법 

 

*Http method : create, read, update, delete

 

결론: 리모콘 작동방식 ㅅㄱ.

 

그러므로  restful api 는 rest하게 쓰는거임 

내가 개발잘하면 Smooth api 개발해서 배포함 ㅅㄱ 그건 스무스하게 쓸수있음

 

그래서 어떻게 작동하는건데 ? 방식 갈켜줘 

 

REST 의 특징(규칙)

 

1. server-Client 구조   = rest는 개인주의야!

자원있는쪽 server         각각독립적 분리            요청하는쪽 client

 

2. Stateless =  rest 는 성격이 안좋아서 볼일다보면 바로 꺼져라고함

요청 간에 클라이언트 정보가 서버에 저장되지 않음

서버는 각각의 요청을 완전히 별개의 것으로 인식하고 처리

 

3.Cachable = rest는 도매업자야

HTTP 프로토콜을 그대로 사용하기 때문에 HTTP 의 특징인 캐싱 기능을 적용 

대량의 요청을 효율적으로 처리하기 위해 캐시를 사용

 

캐싱 기본 개념 : 캐싱(Caching)은 애플리케이션의 처리 속도를 높여준다. 이미 가져온 데이터나 계산된 결과값의 복사본을 저장함으로써 처리 속도를 향상시키며, 이를 통해 향후 요청을 더 빠르게 처리할 수 있다. 대부분의 프로그램이 동일한 데이터나 명령어에 반복해서 엑세스하기 때문에 캐싱은 효율적인 아키텍처 패턴이다.

출처: https://hahahoho5915.tistory.com/33 [넌 잘하고 있어]

 

4. 계층화(Layered System) = rest 는 마약상이야! = 대중성 상용성

->클라이언트 가 어떻든 일딴 팔아 약쟁이들이 부자부터 가난한사람까지 다양한것처럼

클라이언트는 서버의 구성과 상관없이 REST API 서버로 요청

서버는 다중 계층으로 구성될 수 있음(로드밸런싱,보안요소,캐시 등)

 

5.code on Demand(optional) = rest 는 커스터마이징도해  = 확장성

요청을 받으면 서버에서 클라이언트로 코드 또는 스크립트(로직)을 전달하여 클라이언트 기능 확장

 

6.인터페이스 일관성(Uniform interface) = 마약은 제조환경이 중요하지 동일한 품질을위해 동일한 제조공법 제조환경..랄까..?

정보가 표준형식으로 전송되기 위해 구성 요소간 통합 인터페이스를 제공

HTTP 프로토콜을 따르는 모든 플랫폼에서 사용 가능하게끔 설계

 

결론 : rest = 탑 신지드다.(롤알못 ㅈㅅ)

 

 

장점

 

HTTP 표준 프로토콜을 사용하는 모든 플랫폼에서 호환 가능

서버와 클라이언트의 역할을 명확하게 분리

여러 서비스 설계에서 생길수 있는 문제를 최소화

 

그럼

 

REST API 란  ? 

탑 신지드 리모컨 ?

 

REST 아키텍쳐의 조건을 준수하는 어플리케이션 프로그래밍 인터페이스를 뜻함

최근 많은 API가  REST API로 제공되고 있음

일반적으로 REST 아키텍쳐를 구현하는 웹 서비스를 RESTful하다고 표현함

 

REST API 특징

REST 기반으로 시스템을 분산하여 확장성과 재사용성을 높임

(서버 클라 각각 완전히 나눠져있으니 편한겠지 그반대 경우보다 ㅇㅅㅇ)

HTTP 표준을 따르고 있어 여러 프로그래밍 언어로 구현할 수 있음

(모든나라의 사람들이 약을 할수있지 사용법이 동일하니깐)

 

 

REST API 설계규칙

1. 웹 기반의 REST API를 설계할 경우에는 URI를 통해 자원을 표현해야함

 

 

(Uniform Resource Identifier, URI)는 인터넷에 있는 자원을 나타내는 유일한 주소이다. URI의 존재는 인터넷에서 요구되는 기본조건으로서 인터넷 프로토콜에 항상 붙어 다닌다. URI의 하위개념으로 URL, URN 이 있다.

 

https://2sew.tistory.com/manage/newpost/?type=post&returnURL=%2Fmanage%2Fposts%2F 

 

TISTORY

나를 표현하는 블로그를 만들어보세요.

www.tistory.com

여기 글쓰는곳

resouce = newpost

resouce id or else = 그뒤는 바뀜

 

2. 자원에 대한 조작은 HTTP Method(CRUD)를 통해 표현해야 함

URI에 행위가 들어가면 안됨

HEADER를 통해 CRUD를 표현하여 동작을 요청해야함

 

3. 메세지를 통한 리소스 조작

 HEADER를 통해 content-type을 지정하여 데이터를 전달

대표적 형식으로는 HTML, XML, JSON, TEXT 가 있음

주로 JSON 많이씀 

URI 에는 소문자를 사용

Resource의 이름이나  URI가 길어질 경우 하이픈(-)을 통해 가독성을 높일 수 있음

언더바(_)는 사용하지 않음

파일 확장자를 표현하지 않음

'개발' 카테고리의 다른 글

프로젝트 마감 d - 3  (0) 2021.11.19
회사소개 정리  (0) 2021.11.11
RESTAPI-연습  (0) 2021.10.08
팀 프로젝트 정리  (0) 2021.10.07
2021-10-7(목)  (0) 2021.10.07