본문 바로가기
Backend/Spring

Spring : @GetMapping에 대해서

by 코딩쥐 2024. 11. 3.

@GetMapping은 HTTP GET요청을 처리하기 위한 어노테이션이다. 특정 URL 경로와 메서드를 연결하여 클라이언트가 해당 URL로 GET 요청을 보낼 때, 지정된 메서드가 호출 된다. @Controller 혹은 @RestController 에서 사용이 가능하지만, 일반적으로 RESTful을 설계할 때 @RestController와 함께 사용한다. @Controller와 사용할 때는 @ResponseBody를 추가해야 JSON형식으로 응답을 반환할 수 있다.

 

@GetMapping사용하기

1. DTO 클래스를 정의한다.

물품 정보를 전달하기 위한 데이터 전송 객체인 ProductDTO를 Record 클래스로 작성한다. 

package com.example.project.dto;

public record ProductDTO(String productID, String name) {
}

 

2. Controller 클래스를 생성하여 DTO를 활용한다. 

Controller 클래스에서 @RestController와 @GetMapping을 사용하여 URL 경로가 "/get"이고, HTTP GET요청일 때 ProductID 객체를 전송하는 로직을 작성한다. 

package com.example.project.controller;

import com.example.project.dto.ProductDTO;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ExampleController {
    //@RequestMapping(value="/get", method = RequestMethod.GET)을 이렇게 축약해서 작성이 가능하다.
    @GetMapping("/get")
    public ResponseEntity<ProductDTO> userfn(){
        return new ResponseEntity<>(new ProductDTO("ask1db", "양파"), HttpStatus.OK);
    }
}

 

@GetMapping 외에도 HTTP 요청 매핑 어노테이션으로  @GetMapping, @PostMapping, @PutMapping, @DeleteMapping, @PatchMapping 을 사용할 수 있다.  사용 방법은 위의 방법과 동일하게 @GetMapping 대신 해당하는 요청의 어노테이션을 작성하면 된다.