본 자료는 김영한님의 강의 모든 개발자를 위한 HTTP에서 내용을 정리한것입니다.
POST /save HTTP/1.1
HOST: localhost:8080
Content-Type : application/x-www-form-urlencoded
username=kim&age=20
GET /members?username=kim&age=20 HTTP/1.1
HOST: localhost:8080
형식
POST /members HTTP/1.1
Content-Type:application/json
{
"username":"kim",
"age":20
}
서버 to 서버 : 백엔드 시스템 통신
앱 클라이언트 : 아이폰, 안드로이드
웹 클라이언트 : HTML에서 Form 전송 대신 Js를 통한 통신에 사용(AJAX) ex) React, VueJs같은 웹 클라이언트와 API 통신
POST,PUT,PATCH : 메시지 바디를 통해 데이터 전송
GET : 조회, 쿼리 파라미터로 데이터 전달
Content-Type : application/json을 주로 사용. (사실상 표준) TEXT, XML, JSON등...
HTTP API - 컬렉션 (post기반 등록)
HTTP API - 스토어 (put 기반 등록)
HTML FORM 사용 - (get, post만 지원)
API 설계 예제 - 회원 관리 시스템
API 설계 - POST 기반 등록
회원 목록 /members -> GET
회원 등록 /members -> POST
회원 조회 /members/{id} -> GET
회원 수정 /members/{id} -> PATCH(개념적으로 좋다.), PUT(완전히 덮어 쓰는 상황일때. 게시판 글 수정등..), POST(애매할때)
회원 삭제 /members/{id} -> DELETE
API 설계 - PUT 기반 등록
파일 목록 /files -> GET
파일 조회 /files/{filename} -> GET
파일 등록 /files/{filename} -> PUT (없으면 생성, 있으면 덮어쓴다.)
파일 삭제 /files/{filename} -> DELETE
파일 대량 등록 /files -> POST
보통 컬렉션 기반의 POST 방식을 더 많이 사용한다.
회원 목록 /members -> GET
회원 등록 폼 /members/new -> GET
회원 등록 /members/new, /members -> POST
회원 조회 /members/{id} -> GET
회원 수정 폼 /members/{id} -> POST
회원 수정 /members/{id}/edit, /members/{id} -> POST
회원 삭제 /members/{id}/delete -> POST
컨트롤 URI
정리 - URI 설계 개념