크게 데이터 전달 방식은 두가지
쿼리 파라미터를 이용한 데이터 전송메시지 바디를 통한 데이터 전송4가지 상황이 있다
Post, Put, Patch : 메시지 body를 통해 데이터 전송Get : 조회, 쿼리 파라미터로 데이터 전달Content-Type : application/json을 주로 사용(사실상 표준)
API 설계!
- URI 설계시 먼저 리소스를 식별하고
- 리소스와 행위를 분리하자

POST는, 클라이언트가 등록될 리소스의 URI를 모른다POST/membersHTTP/1.1 201 CreatedLocation:/members/100Put은, 클라이언트가 리소스 URI를 알아야 한다PUT /files/{filename}🤔 POST, PUT은 리소스의 관리 주체가 다르다!!!
`http://www.foo.co.kr/resource/sample/{1}의 응답은
- sample1.pdf, sample2.pdf, sample.doc
https://www.foo.co.kr/sample1.pdf
https://foo.co.kr/vehicles/suv/q6https://foo.co.kr/vehicles/suv/q6/https://foo.co.kr/vehicles/suv/q-series/6https://foo.co.kr/vehicles/suv/q_series/6https://foo.co.kr/vehicles/suv/q6 ( O )https://Foo.co.kr/Vehicles/SUV/Q6 ( X )https://foo.co.kr/vehicles/suv/q6.jsphttps://foo.co.kr/vehicles/suv/q6.dohttps://foo.co.kr/vehicles/suv/q6?session-id=abcdefhttps://foo.co.kr/vehicles/suv/q6?action=introhttps://foo.co.kr/vehicles/suv/q6https://foo.co.kr/vehicles/suv/q6/re-orderhttps://foo.co.kr/vehicles/suv/q7/{car-id}/users/{user-id}/releasehttps://foo.co.kr/vehicles/suv/q7/117/users/steve/releaseGET : https://foo.co.kr/vehicles/q7/delete/{car-id} ( X )DELETE : https://foo.co.kr/vehicles/q7/{car-id} ( O )https://foo.co.kr/vehicles/suv?model=q7https://foo.co.kr/vehicles/suv?page=0&size=10&sort=aschttps://foo.co.krhttps://api.foo.co.krhttps://dev-api.foo.co.kr/vehicles/suv/q6https://developer-api.foo.co.kr/vehicles/suv/q6https://foo.co.kr/servlet/vehicles/suv/q6

Location 헤더로 찾아볼 수 있다
표현 = 표현 메타데이터 + 표현 데이터
- 메시지 본문(message body)를 통해 표현 데이터를 전달한다
- 메시지 본문 = 페이로드(payload)
표현은, 요청이나 응답에서 전달할 실제 데이터표현 헤더는 표현 데이터를 해설할 수 있는 정보를 제공한다
즉,표현은 =표현 헤더+메시지 본문(payload)가 된다
