Rest는 Representational State Transfer의 약자로, 웹상에서 사용되는 여러 리소스를 HTTP URI로 표현하고 그 리소스에 대한 행위를 HTTP Method로 정의하는 방식을 말한다.
애플리케이션 프로그래밍 인터페이스(Application Programming Interface)는 애플리케이션 소프트웨어를 구축하고 통합하는 정의 및 프로토콜 세트
위의 둘의 단어를 합친 Restful API란 API 시스템을 구현하기 위한 아키텍쳐로 가장 널리 쓰이는 방식이다.
URL /HTTP Method /Payload 의 형식을 지님!
RESTful API를 통해 요청이 수행될 때 RESTful API는 리소스 상태에 대한 표현을 요청자에게 전송한다. 이 정보 또는 표현은 HTTP: JSON(Javascript Object Notation), HTML, XLT 또는 일반 텍스트를 통해 몇 가지 형식으로 전송된다. JSON은 그 이름에도 불구하고 사용 언어와 상관이 없을 뿐 아니라 인간과 머신이 모두 읽을 수 있기 때문에 가장 널리 사용된다.
👉 장점 : self-descriptiveness, API의 목적 쉽게 이해 간다.
👉 단점 : 표준 규약이 없음(선호되는 방식만 있을 뿐!)
Url 정보를 명확하게 표현해라 ( resource는 명사를 사용) ex)GET/user/1 => GET/users/1
resource에 대한 행위를 HTTP Method(GET, POST, PUT, DELETE)로 표현
url에 HTTP Method가 포함되서는 안된다. ex) GET delete/user/1 => DELETE/users/1
url에 동사가 포함되서는 안된다. ex) GET/user/show/1 => GET/users/1
resource사이에 연간관계가 있는 경우 -리소스, 고유ID, 관계 있는 리소스 ex)GET/users/{user_id}/profile
파일의 경우 payload의 포맷을 나타내기 위한 파일 확장자를 URI에 포함시키지 않는다. ex) GET user/1/profile-photo.jpg 말고! GET user/1/profile-photo (이때 payload의 포맷은 headers에 accept를 사용한다.)
URI은 / 구분자를 사용하여 자원의 계층 관계를 나타내는데 사용한다.
URI 마지막 문자로 /를 포함하지 않는다. ex) GET users/profiles/ (x)
불가피하게 uri 일어지는 경우 -를 사용하여 가독성 높힐 것!
Uri 경로에는 대문자 사용을 피하도록 규정
이번 프로젝트 하면서 더 공부해야할 개념,,! 그냥 글로 읽어보는 것과 직접 써보는 것과는 확연한 차이가 있다. 좀 더 공부하고 써먹어보자---! 추가로 Path parameter랑 query parameter도,, pagination 방법도,, ^^ 공부할 거 많다....!!! 하하하핳