일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 캐시
- HTTP상태코드
- max age
- www-Authenticate
- 쿠키보안문제
- 프록시객체
- no cache
- hikaricp
- 검증헤더
- 300
- 서블릿필터
- 세션만들어보기
- Could not find or load main class worker.org.gradle.process.internal.worker.GradleWorkerMain
- Expires
- 서블릿http세션
- must revalidate
- 양쪽 모두 값 설정
- supportParameter
- gradle오류
- 인증체크
- 조건부요청
- HTTP API
- UrlResource
- etag
- Not Modified
- 세션타임아웃설정
- http
- 프록시 캐시 서버
- resolveArgument
- 쿠키생명주기
- Today
- Total
복습을 위한
HTTP API 설계 예시 본문
HTTP API를 어떤식으로 URI를 설계하는지 예시로 알아보자(바람직하게)
크게 POST기반 등록 PUT 기반 등록이 있다.
리소스를 식별하는 것은 '리소스'를 식별하는 것이 중요하다. 미네랄을 캐다에서 미네랄이 중요한 것이다.
수정같은 경우 고민을 좀 해봐야한다. PATCH는 부분적으로 수정할 수 있다. PUT은 아예 덮어버릴 때이다. 보통은 PATCH를 추천한다. PUT같은 경우 게시글 같은 것을 수정할 때 좋을 거다. 전부 다 갈기 때문이다. 애매할 때는 POST를 쓰자
POST의 자원 등록 특징은 서버가 새로 등록된 리소스 URI를 생성해준다. POST에 대해 포스팅을 할 때 설명했다. 서버에서 받은 유저정보를 데이터베이스에 저장하고 응답데이터로 새로 등록된 리소스 URI를 넘겨준다. 이런 형식을 컬렉션이라고 한다. (서버가 관리하는 리소스 디렉토리)
PUT기반으로 등록하는 파일관리시스템 예시를보자. /files를 파일 폴더라고하자. 그림 처럼 GET요청하면 폴더안에 있는 파일들이 나오는거다. 파일 하나조회하고 싶으면 fileName에 원하는 이름을 넣고 GET요청한다.
파일등록할 때 클라이언트가 알고있을 새로 업로드할 파일이름을 넣고 PUT요청을 한다. 없으면 새로생성하고 있으면 덮어버리는 것이다.
아까 POST로 신규자원 등록할 때와 차이점은 PUT신규자원 등록 특징 클라이언트가 파일 이름을 알고 있어야한다(리소스 URI)는 것이다. POST로 신규데이터를 등록한다는 것은 서버에게 그냥 요청하는 것이다. 서버가 알아서 만들어 리소스URI를 내려준다. 하지만 PUT기반 등록은 리소스URI를 클라이언트가 다 알고 등록해야한다. 이런 스타일의 관리를 스토어라고한다.
대부분은 POST를 쓴다.
HTML FORM사용을 알아보자. HTML FORM은 GET, POST만 지원한다.
회원등록은/members/new를 추천한다.
회원수정은/members/{id}/edit를 추천한다.
삭제경우에 html form은 delete를 사용할 수 없기에 post를 사용해야한다.(컨트롤 uri)
실무에선 컨트롤 uri써야할 경우가 아주 많다..깔끔하게 떨어지지 않는 경우가 아주많다.
이 사이트 참고를 하면 좋다.
리소스만 가지고 설계를 먼저하되 정 안될 경우 컨트롤러를 사용하자.
참고
'http' 카테고리의 다른 글
HTTP 메서드 활용 (2) | 2024.01.04 |
---|---|
HTTP 메서드의 속성 (0) | 2023.11.17 |
PUT,PATCH,DELETE (0) | 2023.11.17 |
GET, POST (0) | 2023.11.17 |
좋은 URI설계란 (0) | 2023.11.17 |