📖 목차
- 서버와 통신
- RESTful API
- RESTful API
- HTTP Method와 CRUD
- RESTful API 규칙
📌 서버와 통신
- 클라이언트와 서버는 데이터를 주고받음
- 패킷 단위로 데이터를 주고받음
- 패킷은 헤더와 바디로 이뤄져있음
- 헤더에 메타 데이터
- 바디에 실제 주고받는 데이터
- 바디의 데이터는 XML 또는 JSON 형태로 송수신
- 클라이언트와 서버는 API 인터페이스를 사이에 두고 통신
📌 RESTful API
1) RESTful API
- API : 통신 규약
- RESTful API : "동사(HTTP Method)+목적어(URL)" 형태로 된 더 자세히 통일된 API
2) HTTP Method와 CRUD
HTTP Method는 RESTful API에서 동사에 해당되는 것
HTTP Method 종류
1. GET(Read) : 서버에게 받고자 하는 정보를 Requset_URI에 붙여 요청
- path-variable => 요청하고 싶은 정보를 특정 짓는 것
- query-string => 요청하고 싶은 정보에 대해 필터링하는 것
- POST(Create) : 생성 요청
- PUT(Update) : 덮어쓰기 수정, 회원정보중 비번 수정
예) 회원정보에 수정된 비번 데이터만 남음
- PATCH(Update) : 부분수정, 회원정보중 비번 수정
예) 비번만 수정됨
- DELETE(Delete) : DELETE 대신 PUT, PATCH 사용하여 삭제 기능 수행할 수 있음, 단 목적어(URL)에 수정인지 삭제인지 표시
3) RESTful API 규칙 [1]
- 마지막이 /로 끝나면 안됨
- 언더바(_) 대신 하이픈(-)
- 소문자만
- 동사 단어는 사용하지 말고 HTTP Method로 대체
- 복수형 명사 사용
- 파일 확장자 표지하지 않음
- 리소스 관계 표시 [2]
- 서브리소스로 관계 표현하는 방법
GET, users/{userId}/devices : 특정 사용자가 “갖는” 디바이스 목록
⇒ 일반적으로 소유 “has”의 관계를 묵시적으로 표현할 때 좋음
- 서브리소스에 관계를 명시하는 방법
GET, /users/{userId}/likes/devices : 특정 사용자가 “좋아하는” 디바이스 목록
⇒ 관계의 명이 애매하거나 “구체적인 표현”이 필요할 때 사용한다.
※어떤 형태를 사용하더라도 문제는 없지만, 필요에 따라 적절한 방법으로 관계를 표현하면 됨
&링크모음
[1] RESTful API 규칙
[2] RESTful API 리소스 관계 표시