[Spring] SpringBoot GET 요청

jsieon97·2023년 2월 22일

[Spring] BackEnd

목록 보기
2/11

주의) 실제 프로젝트에서 API를 생성할때에는 API 명세를 미리 만들고 그것을 참고하여 만들어야 한다.

GET요청 (더하기 요청 API)

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class CalculatorController {

    @GetMapping("/add") //GET /add
    public int addToNumbers(@RequestParam int number1,
                            @RequestParam int number2)
    {
        return number1 + number2;
    }
}
요청 URL = http://localhost:8080/add?number1=10&number2=20

@RestController

@RestController는 @Controller에 @ResponseBody가 추가된 것입니다. RestController의 주용도는 Json 형태로 객체 데이터를 반환하는 것입니다. 최근에 데이터를 응답으로 제공하는 REST API를 개발할 때 주로 사용하며 객체를 ResponseEntity로 감싸서 반환합니다

@GetMapping

GetMapping 은 메소드에만 적용. HTTP GET 요청을 특정 핸들러 메소드에 맵핑하기위한 annotation

@RequestParam

URL상에서 데이터를 찾아서 받아온다. (URL상에 number1, number2가 명시되어 있어야함)

@RequestBody

URL상에 올라가지 않고 Body에 담긴 데이터를 받아온다. URL상에 데이터가 올라가지 않아 보안상으로 더 안정적임

Data Tranfer Object(DTO)를 생성해 @RequestParam을 지우기

public class CalculatorAddRequest {
    private final int number1;
    private final int Number2;

    public int getNumber2() {
        return Number2;
    }

    public int getNumber1() {
        return number1;
    }

    public CalculatorAddRequest(int number1, int number2) {
        this.number1 = number1;
        Number2 = number2;
    }
}

위 객체를 생성 후

import com.group.libraryapp.dto.calculator.request.CalculatorAddRequest;

@RestController
public class CalculatorController {

    @GetMapping("/add") //GET 
    public int addToNumbers(CalculatorAddRequest request)
    {
        return request.getNumber1() + request.getNumber2();
    }
}
요청 URL = http://localhost:8080/add?number1=10&number2=20

객체로 요청을 받으면 @RequestParam없이 작성할 수 있습니다.

위에 작성한 DTO를 이용해 @RequestBody 활용하기

@GetMapping("/add") //GET 
    public int addToNumbers(@RequestBody CalculatorAddRequest request)
    {
        return request.getNumber1() + request.getNumber2();
    }
요청 URL = http://localhost:8080/add
//Body
{
	number1 : 10,
    number2 : 20
}

@RequestBody를 추가하고 URL을 수정후 Body에 객체 데이터를 담아 보내 작성할 수 있습니다.

요청 결과

profile
개발자로써 성장하는 방법

0개의 댓글