ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Spring boot로 ResponseEntity 적용하기 볼께요
    카테고리 없음 2020. 2. 29. 14:59

    우리는 왜 Restful APIs를 만드는 것이 첫번째인가?Ajax통신을 통해서 데이터를 교환하기 위해서 만들려고 하면 80점의 답변입니다. Restful APIs를 만드는 가장 큰 이유는 Client Side를 정형화한 플랫폼이 아니라, 모바일 최초, PC, 애플리케이션 등 플랫폼에 제약을 두지 않는 것을 목표로 했기 때문입니다.​ 이것이 어떤 것인지 좀 더 간단히 설명하자면 20최초 0년 전까지는 Server Side에서 데이터를 전달하는 Client프로그램의 대상이 명확했습니다. PC 브라우저가 대상입니다. 그래서 그냥 JSP나 ASP, PHP 등을 이용한 웹페이지를 구성해 작업을 진행하면 됐다. 하지만 스마트 디바이스의 등장으로 TV, 스마트폰, 태블릿 등 클라이언트 프로그램이 다양해졌고 그에 맞춰 서버 사이드를 그때그때 만드는 것이 상당히 비효율적인 처음이 됐다.이러한 과정에서 개발자들은 Client Side를 전혀 고려하지 않고 메시지 기반, XML, JSON과 같은 Client에서 바로 객체로 치환되는 형태의 데이터 통신을 지향하게 되었고 서버와 Client의 역할을 분리하게 되었다.이러한 변이를 거치면서 필요하게 된 것은 HTTP의 그럭저럭 규약을 지키고 API를 만드는 것입니다.이 Restful APIs를 개발하면 HTTP의 Response 규약을 지키지 않고 방문하여 만든 JSON 컨벤션에서 답변을 하는 경우가 많습니다만, 그것은 올바른 개발 방향입니다. 왜냐하면 아까도 말했듯이 Client Side가 정형화되지 않은 환경에서 개발속도를 낮추는 가장 큰 이유는 그 정도까지 지키지 않기 때문이다. 어떻게든 지키지 않게 되었을 때에 생성하는 최대의 화제는 HTTPStatus 코드를 제대로 응답하지 않게 되는 것이며, 이 경우 클라이언트로부터는 다른 방어 코드를 삽입하는 수고가 생성되어, 이러한 수고가 모여 프로젝트의 속도를 저하시키는 요소로서 동작하게 된다. 그러므로 이것을 준 누군가는 중요하기 때문에 금의 첫째는, 상기와 같은 장황한 이유 때문에, Spring으로 제공하는 Response Entity object를 이용해 규약에 맞는 HTT PResponse를 개발해 본다.최근 만든 Hello World 메서드를 확인해보자.


    >


    중간에 String에 반환합니다라는 저 빨간 사각형은 HTTPStatus Code를 단 200("Success"을 의미하는 코드)이라고 응답하고 주고 ResponseBody(응답 본문)에는 단순한 글자로 채우고 배출하는 역할 뿐 이프니다니다. 그러나 실제 서비스에서는 200만 아니라 40하나(권 한 오프 sound)이 나쁘지 않아 500대 오류(Server Side에서 발발하는 실수는 500번대 에러입니다)들도 반환되지 않으면 안 됩니다.자, 패키지와 클래스를 만들어 보자.키위를 몇번 만들어 봤기 때문에 따로따로 만드는 방법은 패스. 패키지명은 "com.example.sample.model"로, 클래스명은 "ApiResponseMessage"로 한다.아, 클래스를 만들기 전에 우리는 STS에 lombok 플러그인을 설치했다고 소가족과 아래의 코드를 진행하겠습니다. pom.xml에 아래의 라이브러리를 Dependency로 추가하기로 하자. org. project lombok true 이렇게 라이브러리를 준비했다면 방금 ApiResponse Message 클래스를 아래와 함께 작성해 보자.package com.example.sample.model;import lombok.Getter;import lombok.Setter;import lombok.ToString;@Setter@Getter@ToString public class ApiResponseMessage hello World() {ApiResponse Message message = 새롭게 ApiResponse Message("Success", "Hello, World", "return 새롭게 Response Entity (message, HStatusen 새롭게 Response Entity (messOK);} 이 작업까지 했다면, 서버를 열어 응답 메시지를 확인해 보자.​


    >


    >


    저런 성공 메시지를 확인할 수 있다. 그러면 에러 코드를 발생시키면 어떻게 되는가?코드를 다음과 같이 수정한다. ​@RequestMapping(value="/hello", method=RequestMethod.GET)@ApiOperation(value="hello, World API", notes="hello, World를 반환하는 API, Ajax통신 확인용.") public Response Entity hello World() {ApiResponse Message=새로운 ApiResponse Message("Authentification Error", "Hello, World", "); return 새로운 Response Entity (Message), ")를 재부팅해 보자. 그러니까 다시 접속해 보자.


    >


    >


    이렇게 오류 코드를 토해내 원하는 메시지를 확인할 수 있게 된다.[Spring boot에 Response Entity 적용](https://steemit.com/kr-dev/@igna84/spring-boot-responseentity)


    댓글

Designed by Tistory.