여러 서비스를 개발 할때 REST API란 이름으로 우리는 API를 만든다.
그러면서도 우린 아니 나는 REST API가 무엇인지 정확히 모르고 있었다.
그러던 차에 https://tv.naver.com/v/2292653
그런 REST API로 괜찮은가? 라는 영상을 보게되었다.
다들 시간이 날때 보면 좋을거 같다.
우선 REST란 말의 해석을 보면
Representational State Transfer 의 약자
rest란말은 로이필딩(roy fielding)이란 사람이 여러사람과
http1.0을 정립하고 명세를 하게되었는데
http를 고치게되면 기존 웹과의 호환성의 문제가 생길 수 있었다.
웹을 망가트리지않고 http를 진보 시킬방법을 생각하다
Http Object Model이란 해결책을 만들게 되었다.
이 Http Object Model이 Rest 정의의 시작이다.
RestAPI
- 여러 아키텍쳐스타일의 집합(6가지)
동영상을 보면 다 나온다.
- 그중 uniform interface를 지키지 않는경우가 많다.
uniform interface란?
메세지는 스스로 설명해야한다.
- 목적지,명세를 표현해줘야한다.
- HETEOAS
전이가 될 수 있어야한다.
예를 들어 글 목록 -> 글 쓰기 -> 글 저장 -> 글 보기 -> 글 목록
링크를 타고 할 수 있게 되는 것이다.
- 명세
명세는 id,title란 정보가 있으면 그게 무엇인지 표현해주는것을 말한다.
uniform interface을 신경 써야하는 이유
- 서버와 클라이언트가 독립적으로 진화한다.
- 서버가 기능 변경이 되어도 클라이언트는 업데이트를 할 필요없다.
예를 들어 이전글,다음글을 보게 개발되어있을때 링크정보가 있다면
클라이언트는 변경할 것이 없다.
RestAPI로 안만들어도 될때는?
- 서버가 클라이언트를 통제가능할때
혼자 다 개발하면 신경안써도된다.
- 진화에 관심 없을때
여러번의 업데이트등이 문제안될때
다음번 API개발할때는
RestAPI개념을 정확히 하여 개발해보자.
'개발 소발 > 개발 java(기초)' 카테고리의 다른 글
JAVA Servlet 서블릿이란? (0) | 2020.08.06 |
---|---|
인텔리J intelliJ 기초 단축키 - 1 (0) | 2019.09.19 |
JAVA Exception,error의 차이, Exception 핸들링방법 (0) | 2019.02.12 |
JAVA static의 개념, 추상클래스(abstract)와 인터페이스(Interface)의 차이 (0) | 2019.02.11 |
JAVA 오버라이딩,오버로딩overriding,overloading (0) | 2019.02.08 |