본문 바로가기

Java/Spring Framework

REST에서 CRUD 구현

반응형

오늘 정리할 내용은 아래와 같습니다.

  • RESTful API 서비스에서의 HTTP 메소드 사용
  • JSON Data format 및 REST 클라이언트

JSON은 Javascript Object Notation의 약자로 API 서버간, 클라이언트 서버간의 데이터 교환 포맷으로 많이 사용되고 있습니다.

REST 클라이언트는 웹 브라우저에서 직접적으로 지원하지 않는 PUT, DELETE 메소드도 테스트 가능합니다.

 

Data Transfer Object 디자인 패턴

- 데이터를 각 서버/클라이언트 간 전달하기 위한 목적으로 만든 객체

- VO패턴의 확장형으로 거의 유사합니다.

- JVM위에서 application level위에서 다루는 데이터는 class로 만들어야합니다

 

 

JSON(Javascript Object Notation)

  • Web Server에서 응답을 보낼때는 XML, JSON형태로 해줍니다.
  • 대부분의 서비스는 JSON 형태로 응답을 해줍니다.
  • JSON은 근본적으론 Java Object와 동일합니다.
  • 경량 데이터 교환 형식입니다. JSON이전에는 XML이 쓰였습니다. XML도 경량이긴 하지만 JSON보다는 무겁습니다.
  • Javascript 에서 객체를 만들 떄 사용하는 표현식입니다.
  • 특정 언어에 종속되지 않습니다. 

JSON 형식

{

    "status" : "ok"

}

  • name-value 형식의 쌍으로 이뤄져있습니다. Java 에서의 Map과 유사한 형태로 이뤄져있습니다.
  • 값들의 순서화된 리스트 형식입니다. key는 주로 string을 쓰고 값에는 모든 type이 가능합니다.

 

JSON 라이브러리- Jackson

DB에 있는 정보들을 Java 영역으로 올리려면 Object형태로 구현돼야하는데 이를 도와주는 것이 MyBatis입니다.

JVM에서 Object로 다뤄진 데이터는 브라우저에서 다루기 위해선 JSON형태로 바꿔야하는데 이를 도와주는 라이브러리를 Jackson입니다. 

스프링 부트에 내장되어 있어 바로 사용이 가능합니다.

high-performance processor입니다.

 

API 응답 포맷

상태와 데이터로 구분되어 응답하는데, 메시지를 포함하여 응답도 가능합니다.

요청에 따라서 응답을 어떤식으로 할지 응답 포맷을 규정해주기도 합니다.

 

- 페이징 처리시, 데이터는 별도로 보내주고, pageNumber, nextPage도 별도로 추가 전달해줍니다.

 

REST 클라이언트

API 테스트 시 웹서비스 테스트 클라이언트(=웹 클라이언트)를 설치해줘야합니다.

Postman이 가장 많이 사용하는 tool로 chrome 확장 프로그램을 통해 설치 가능합니다.

REST 클라이언트는 HTTP 에이전트로서 주로 GUI를 통해 HTTP 요청을 수행하고 응답을 받아 사용자에게 알려주는 어플리케이션입니다. 

주로 많이 쓰이는 REST 클라이언트로는 Postman, Insomnia, Paw, Katalon Studio 등이 있습니다.

postman

 

 

Controller 단은 클라이언트의 요청을 분석해 service단으로 넘겨주는 역할을 수행하며 그 과정에서 아래와 같은 annotation을 사용합니다.

 

@PathVariable

- 요청 URL을 파라미터로 사용 (경로 변수)

- 사용 방법

 

 

@RequestBody

- 프론트엔드에서 Server로 update 작업을 요청할 때, JSON 형태로 넘기는 경우가 있습니다.

JSON 을 통채로 넘길때는 RequestBody로 받으면 됩니다.

controller에서 RequestBody로 JSON 받는 형태

이렇게 JSON으로 받으려면, Request 시 Body에 입력한 변수 명이 User의 변수명과 동일해야합니다.

Postman에서 요청한 body 형태

 

User Class의 형태

 

 

MVC란 어플리케이션을 모델, 뷰, 컨트롤러의 역할로 분리하여 개발하는 방식으로 Spring MVC, ASP.NET, 그리고 클라이언트에서 Angular등이 있습니다.

 

@RequestMapping

- 요청에 대한 처리, Controller 및 method 지정이 가능합니다.

- Controller 설정은 Class level로 보며 method설정은 method level로 분리할 수 있습니다.

- Class level, method level 을 같이 설정 가능합니다.

 

반응형

'Java > Spring Framework' 카테고리의 다른 글

기본 개념 Spring  (0) 2020.10.15
RESTful API 웹서비스 테스트  (0) 2020.03.11
Spring MVC로 RESTful API 서비스 구현  (0) 2020.03.04
Spring 개발 환경 설정  (0) 2020.03.03
Framework란 2 -Spring boot 기초  (0) 2020.03.03