API란???
소프트웨가 다른 소프트웨어로 지정된 형식으로 요청, 명령을 받을 수 있는 수단을
Application Programming Interface라고 즉 api라고 한다.
예) 이미 구축되있는 기상청 서버에 정해진 형식으로 api요청을 보내서 원하는 데이터를 받아올수 있는 것
REST - 컴퓨터 시스템의 상호운영성을 제공하는 방법 중 하나?? 뭔 소리야?
역사
-
어떻게 인터넷에서 정보를 공유할 것인가? -> 정보들을 하이퍼텍스트로 연결한다!!
표현형식은 : HTML
식별자는 : URI -> 즉 고유한 자료의 id값을 말한다.
전송방법은 : HTTP
-
어떻게 웹을 잘 만들수 있을까???
HTTP Object Model -> REST로 만들어짐 (2000년에 Roy가 박사논문으로 만듬)
최초의 api는 Salesforce API에서 SOAP으로 공개한 API
-> 문제는 너무 복잡함
flickr API에서 REST라는 이름으로 api을 공개함
-> 같은 일을 하는 것을 soap방식과 rest 방식 두가지 모두 공개함
soap은 복잡하고 어렵고 규칙이 너무 많음!!!! 안써
rest 단순하고 규칙이 적고 쉽네??? 와우~~~
결국 rest가 soap을 뭉개버림 우린 rest의 시대
REST -> 아키텍쳐 스타일
아키텍쳐 스타일이란? 제약조건의 집합
REST를 구성하는 스타일
- client-server
- sateless
- uniform interface
- layered system
REST API
정보를 주고받는데 있어서 개발자들 사이에 널리 쓰이는 형식이다!
예) 프론트에서 서버에 데이터를 요청할때 , 배달앱에서 서버에 주문을 넣을때 등등~
구성요소 리소스, 메소드, 메세지각 요청이 어떤 동작이나 정보를 위한 것인지를 요청 보낸 형식 자체의 모습 자체로 추론이 가능하다는 것이다.
왜써야됨?? 일정한 형식이 없이 나혼자 개발하냐??
즉 CRUD 가능 - get post patch delete 등등
URI란? 자원을 구조와 함께 나타내는 구분자를 뜻한다. URI는 특정 리소스를 식별하는 통합 자원 식별자(Uniform Resource Identifier)를 의미한다. 웹 기술에서 사용하는 논리적 또는 물리적 리소스를 식별하는 고유한 문자열 시퀀스다.
URL은 흔히 웹 주소라고도 하며, 컴퓨터 네트워크 상에서 리소스가 어디 있는지 알려주기 위한 규약이다. URI의 서브셋이다.
URI는 식별하고, URL은 위치를 가르킨다.
RESTfull API란?
누구든 각 요청의 의도를 쉽게 파악할 수 있도록 api를 만드는 것
Restful하게 API를 디자인한다는 것은 URI를 규칙에 맞게 잘 설계했는지의 여부입니다. 규칙의 항목으로는 아래와 같습니다.
- 동일한 URI(End point)의 행위에 맞게 POST, GET, DELETE, PATCH등의 메소드를 사용한다.
- 명사를 사용한다. 리스트를 표현할 때는 복수형을 사용한다.
- URI Path에 불필요한 파라미터를 넣지 않는다. 즉, 단계를 심플하게 설계한다.