RESTful API 설계
REST는 '자원을 정의하고 이에 대한 주소를 지정하는 방법'에 대한 구조적 방법론이다. 2000년에 정의된 웹 구조적 스타일을 뜻한다.
RESTful API란 구조적 방법론인 REST를 기반으로 서비스 인터페이스인 API를 구현한 것을 의미한다.
HTTP URI를 통해 접근할 자원을 명시하고, HTTP Method를 통해 해당 자원에 CRUD(GET, POST etc.)를 적용하여 여러 형태로 응답(json, xml, text 등)받게끔 설계한 API를 뜻한다!
RESTful API는 API의 한 종류이다.
Web에서 Client와 Server는 Web API를 통해 통신한다.
client가 server에 request를 보내면 server가 response한다.
1. start-line
GET /search HTTP/1.1
2. Headers
Accept: */*
Accept-Encoding: gzip, deflate
Connection: keep-alive
Content-Type: application/json
Content-Length: 257
Host: google.com
User-Agent: HTTPie/0.9.3
3. body
json 형식. json은 "userId": "keepcalm"와 같이 key:value 형태를 가진다.
{
"imp_uid": "imp_1234567890",
"merchant_uid": "order_id_8237352",
"status": "paid"
}
1. Status Line
HTTP/1.1 404 Not Found
2. Headers
Response의 headers와 동일
Connection: close
Content-Length: 1573
Content-Type: text/html; charset=UTF-8
Date: Mon, 20 Aug 2018 07:59:05 GMT
3. Body
Response의 body와 일반적으로 동일하다.
Request와 마찬가지로 모든 response가 body가 있지는 않다.
데이터를 전송할 필요가 없을경우 body가 비어있게 된다.
- URI = URN + URL
인터넷에 있는 자원을 나타내는 주소이다. 어떤 자원을 가지고 있는 특정한 컴퓨터(서버) 상의 특정한 파일(자원)의 이름을 나타낸다.
URI이 URL과 URN의 상위 개념으로, 자원을 위치로 식별하면 URL, 고유한 이름으로 식별하면 URN이다.
- URL vs URI
URL은 자원(resource, 리소스)의 위치이고, URI는 통합 자원 식별자이다. (참고: 컴퓨터 리소스란?)
URI는 어떤 자원을 나타내는 유일한 주소이다.
URI는 서버 내 디렉터리 구조를 노출시키는 URL의 보안적 이슈와 관련하여
URI에 해당하는 Controller 즉 함수를 실행함으로써 결과를 받는다.
GET 데이터 받아오기
POST 데이터 생성/수정하기
OPTIONS method 받아오기
PUT 데이터 생성하기 - POST보다 잘 안씀
DELETE 데이터 삭제하기_서버에 요청

200 OK 문제 없이 잘 실행됨
400 Bad Request 일반적인 Client 측 error
500 Internal Server Error 일반적인 RESTful API error
📂Reference :
API 기본 개념
RESTful API의 설계