요르딩딩

RESTFul , HTTP Response Status , HTTP Response Status Code표 본문

[Web]/[Back-End]

RESTFul , HTTP Response Status , HTTP Response Status Code표

요르딩딩 2021. 3. 2. 21:06
728x90
반응형

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 다른 서버로부터 응답받을 수 없는 상태

 

728x90
반응형

'[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
Comments