요르딩딩
RESTFul , HTTP Response Status , HTTP Response Status Code표 본문
RESTful
REST라는 것은 웹 서비스에서 많이 사용되는데, Application 사이에 결합도를 낮추게끔 설계하는 아키텍처 스타일입니다. 결합도를 낮춰 서버 / 클라이언트가 별도로 구축되고 결합될 수 있게 하는 것이지요.
Requset 주요 Method 종류
GET : 조회 , url뒤에 query String 붙음. (select) (보통 : 200)
POST : 등록 (url에 불포함, body에 포함) - 중요정보를 가릴 수 있다. (insert, create) (보통 : 201,202(body 없음))
PUT : 수정, data record 전체 column 수정 (update) (보통 : 204)
DELETE : 삭제 (delete) (보통 : 204)
PATCH: data record 일부 column 수정 (ex. 엔티티의 특정 Flag On/Off) (일부 update) (보통 : 204)
OPTION: 해당 url에 요청가능한 METHOD 종류 조회 요청
HTTP Response Status 사용
Controller Return Type
: public ResponseEntity<?> 메소드명()
Return (회사에서 사용하는 Utill이 있다면 Utill을 이용)
: return ResponseEntity.accepted().headers(headers).body(users)
package net.javaguides.springboot;
import java.util.ArrayList;
import java.util.List;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class UserController {
@GetMapping("/users")
public ResponseEntity < List < User >> users() {
List < User > users = new ArrayList < > ();
users.add(new User(1, "Ramesh"));
users.add(new User(2, "Tony"));
users.add(new User(3, "Tom"));
HttpHeaders headers = new HttpHeaders();
headers.add("Responded", "UserController");
return ResponseEntity.accepted().headers(headers).body(users);
}
}
HTTP Response Status Code표
2XX : 정상
4XX : 사용자 오류, 클라이언트(사용자, Front-End, 타 API서버)의 요청오류.
5XX : 서버 오류 서버(자기자신, 서비스서버내 타 서버, 대외계서버)의 오류.
참고 : HTTP 응답상태 코드에 대한 간결한 명세 - W3C의 HTTP/1.1 응답코드 설명 ← 응답코드별 설명 및, 클라이언트는 어떤 행동을 해야하는지에 대한 정의가 함께 기술되어있습니다.
1) Resource : 자원. 예) 은행계좌
2) Record : 자원의 변동내역. 예)은행계좌의 거래내역
G | P | U |
200 | Ok | 정상. |
201 | Created | (insert) 정상. 새로운 Resource가 생성됨 |
202 | Accepted | 요청 정상수신. |
204 | No Content | (update, delete) (수정/삭제시)제공할 Resource없음. 응답내용 (Response Body)이 없는 상태코드입니다. |
207 | Multi-Status | 다건 처리 중 일부건만 정상인 경우 |
301 | MovedPermanently | Obsolete API . (폐기된 API)Obsolete(폐기예정 또는 폐기 - 이 문서에서는 폐기상태로 통용됩니다.)와 Deprecated (비추천 - 사용은 가능하나 추천하지 않음)은 다름. |
400 | Bad Request | 요청 Parameter 불충분/부적합동일한 Request를 보내면 안됨. |
401 | Unauthorized | 인증되지 않음. |
403 | Forbidden | 인가되지 않음. 로그인했지만 권한없음 |
404 | Not Found | 해당 Resource가 존재하지 않음. Resource1)는 있는데, Record2)가 없는경우에는 204 또는 200 으로 추천합니다. 계좌거래내역 조회시, 계좌자체가 없으면 404, 계좌는 있는데 거래내역이 없으면 204(혹은 200) |
409 | Conflict | 요청 Parameter가 적합하지만,내부 정책/로직과 충돌하여 처리 불가능 |
413 | Payload Too Large | 요청Resource 수량/용량이 기준치 초과. |
500 | Internal Server Error | 내부 서버 오류 |
502 | Bad Gateway | 현재 서버가 중계서버역할을 하며, 대외계 서버측이 정상서비스가 불가능한 상태인 경우. |
503 | Service Unavailable | 서비스 제공불가능. |
504 | Gateway Timeout | 다른 서버로부터 응답받을 수 없는 상태 |
'[Web] > [Back-End]' 카테고리의 다른 글
자바 DB중복 컬럼 체크 (0) | 2021.04.02 |
---|---|
java 파일다운로드 (0) | 2021.03.29 |
Redis란 (0) | 2021.02.16 |
스프링 페이징처리 (0) | 2021.01.06 |
Eclipse에서 Tomcat실행시 경고 : SetPropertiesRule (0) | 2021.01.06 |