start line
수행 작업(GET,PUT,POST 등)이나 방식(HEAD, OPTIONS)를 설명하는 HTTP methods를 나타냄
요청대상 또는 프로토콜, 포트, 도메인의 절대경로는 요청 컨텍스트에서 작성
Headers : 헤더이름(대소문자 구분X 문자열), :, 값을 입력. 값은 헤더에 따라 다름
Body
API
REST API
Rest 구성
REST 특징
좋은 REST API
REST 성숙도 모델
0 ~ 3단계, 즉 4단계로 이루어짐
3단계까지 지키기는 어렵기때문에 2단계까지만 적용하더라도 좋은 API
0단계
/appointment
// Request 요청
POST /appointment HTTP/1.1
[헤더 생략]
{
"date" : "2022-08-03",
"doctor" : "허준"
}
// Response 응답
HTTP/1.1 200 OK
[헤더 생략]
{
"slots" : [
{ "doctor" : "허준", "start" : "09:00", "end" : "12:00"},
{ "doctor" : "허준", "start" : "14:00", "end" : "18:00"}
]
}
1단계
- 1단계에서는 개별 리소스와의 통신 준수
- 모든 자원은 개별 리소스에 맞는 endpoint를 작성하고, 요청하고 받은 자원에 대한 정보를 응답으로 전달해야함
- 요청하는 리소스가 무엇인지에 따라 다른 엔드포인트로 구분
- 요청에 따른 응답으로 리소스를 전달할 때에도 사용한 리소스에 대한 정보와 함께 리소스 사용에 대한 성공 / 실패 여부를 반환해야함.
//Request 요청
POST /doctors/허준 HTTP/1.1
[헤더 생략]
{
"date" : "2022-08-03"
}
//Response 응답
HTTP/1.1 200 OK
[헤더 생략]
{
"slots: [
{ "id" : 123, "doctor" : "허준", "start" : "09:00", "end" : "12:00"},
{ "id" : 456, "doctor" : "허준", "start" : "14:00", "end" : "18:00"}
]
}
2단계
GET
메서드는 body를 갖지않기때문에 query parameter을 사용하여 필요한 리소스 전달, 서버의 데이터를 변화시키지 않는 요청에 적합POST
메서드는 요청마다 새로운 리소스를 생성PUT
메서드는 요청마다 같은 리소스 반환, 멱등한다.PUT
은 교체, PATCH
는 수정3단계