상세 컨텐츠

본문 제목

[2차시/15기 이병주] REST API 와 GraphQL

본문

[4차시] REST API (15기 이병주)

REST API: 개발자들이 사용하는 형식

API란 ?

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

웹API

 
 
 
100%
 

요청과 응답으로 작동

웹API의 역할

  • 서버와 데이터베이스 안의 리소스에 접근
  • 모든 요청과 응답을 표준화 ex)갤럭시, 아이폰 상관없이 동일하게

HTTP를 이용해서 통신할 때

명확한 패턴이 있어야함

uri에는

  • 동사는 method 표현하기 때문에 명사 사용
  • /는 계층관계를 나타낼 때 사용
  • 마지막문자에 / 슬래시 사용하지 않음
  • _ 사용하지않고, 소문자사용
  • 파일 확장자 포함시키지 않음

리소스(정보)는 uri를 통해 표현됨

collection 은 복수형

element 하나하나가 모여 collection

정보의 가공 CRUD (create, read, update, delete)

이것들을 method라고 부름

http의 메서드를 사용

  • Create: post 
  • Read: get
  • Update: put(전체) , patch(부분)
  • Delete: delete

Example

POST

리소스는 URI로 식별한다

행위는 method로 —> POST !

RestAPI 가 규정하지 않는것: 어떤 데이터 타입으로 통신할 것인지 , json,xml 가능

GET

뒤에 식별자 2 붙여주면됨

수정: PUT, PATCH

title을 fetch-patch로 바꿈

body는 바뀌지 않음

결과

 
 
 
100%
 

title만 건드렸는데 body가 없어짐

Delete

그런 REST API로 괜찮은가

로이필딩이 말하는 REST 가 뭘까 ?

REST- 분산 하이퍼미디어 시스템을 위한 아키텍처 스타일

즉 제약 조건

웹은 REST를 매우 잘 따르고 있다.

왜 API는 REST가 잘 안되나?

Hateoas

Hypermedia As The Engine of Application State

API를 사용하는 클라이언트가 전적으로 서버와 동적인 상호작용이 가능하도록 하는 것

요청에 필요한 URI를 응답에 포함시켜 반환하는 것

GraphQL

출처: 노마드코더

페이스북이 RESTAPI의 문제점을 해결하기 위해 만들었대요

문제점 2가지-over fetching과 under fetching

매번 새로운 URL을 생성하는 방식이 REST

Over fetching

원하는 정보보다 더 많은 정보를 가져오는 것

영화 제목만 보고 싶은데 영화 개봉일, 평점 등등 너무 많이 가져옴

—> 그래프QL은 Query Language이기 때문에 필요한 정보만 요청

 
 
 
100%
 

왼쪽 요청, 오른쪽 응답

Under fetching

원하는 정보보다 더 적은 정보를 가져오는 것

곧 개봉하는 영화, 상영 중인 영화를 하려면 /movie/upcoming, /movie/playing 두가지 URL이 필요함

요청 두번해야함

 

 

관련글 더보기

댓글 영역