본문 바로가기

SpringBoot(JPA,Gradle)

[SpringBoot] @RestController, @RequestMapping, @GetMapping

728x90

@RequestMapping

- client에서 오는 요청을 처리하기 위한 api url을 매핑할 때 사용하는 어노테이션. 메소드 형식(GET, POST, PUT, DELETE) 지정

@RequestMapping(method = RequestMethod.GET ...)
@RequestMapping(method = RequestMethod.POST ...)
@RequestMapping(method = RequestMethod.PUT ...)
@RequestMapping(method = RequestMethod.DELETE ...)

controller 패키지 생성 > GetController 클래스 생성

package com.example.day1.controller;

import com.example.day1.model.MultiParam;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api") // localhost:8080/api
public class GetController {
    // localhost:8080/api/getMethod(get)
    @RequestMapping(method = RequestMethod.GET, path="/getMethod") // 메소드 형식 : GET
    public String getRequest() {
        return "getRequest() 호출";
    }

}

실행 결과

 

@GetMapping

- GET 요청 방식의 API를 만들때 사용하는 방식. @RequestMapping(method = RequestMethod.GET ...) 방식도 있지만, @GetMapping을 이용하는 방법도 있음.

@GetMapping("/getMethod")
package com.example.day1.controller;

import com.example.day1.model.MultiParam;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api") // localhost:8080/api
public class GetController {
    // localhost:8080/api/getParameter?userid=apple&userpw=1234
    @GetMapping("/getParameter")
    public String getParameter(@RequestParam String userid, @RequestParam(name="userpw") String password) { // 메소드 내부에서 다른 매개변수명으로 사용하고 싶을 때 (name="")을 붙여준다. -> userpw로 받아서 password로 사용
        String userpw = "1111";
        System.out.println("userid : " + userid);
        System.out.println("userpw : " + password);
        return "getParameter() 호출";
    }

}

 

 

여러 개의 파라미터 전달

package com.example.day1.controller;

import com.example.day1.model.MultiParam;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api") // localhost:8080/api
public class GetController {
    /*
        userid, userpw, name, gender, email, age
        // localhost:8080/api/getMultiParameter?userid=apple&userpw=1234&name=김사과&gender=여자&email=apple@apple.com&age=20
    */
    @GetMapping("/getMultiParameter")
    public String getMultiParameter(
            @RequestParam String userid,
            @RequestParam String userpw,
            @RequestParam String name,
            @RequestParam String gender,
            @RequestParam String email,
            @RequestParam int age
    ) {
        return userid + " " + userpw + " " + name + " " + gender + " " + email + " " + age;
    }

}

 

 

객체를 파라미터로 전달

package com.example.day1.model;

public class MultiParam {
    String userid;
    String userpw;
    String name;
    String gender;
    String email;
    int age;

    public String getUserid() {
        return userid;
    }

    public void setUserid(String userid) {
        this.userid = userid;
    }

    public String getUserpw() {
        return userpw;
    }

    public void setUserpw(String userpw) {
        this.userpw = userpw;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getGender() {
        return gender;
    }

    public void setGender(String gender) {
        this.gender = gender;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }


}
package com.example.day1.controller;

import com.example.day1.model.MultiParam;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api") // localhost:8080/api
public class GetController {
    // localhost:8080/api/getMultiParameter2?userid=apple&userpw=1234&name=김사과&gender=여자&email=apple@apple.com&age=20
    @GetMapping("/getMultiParameter2")
    public MultiParam getMultiParameter2(MultiParam multiParam) { // 객체를 파라미터로 전달 받을 때
        System.out.println(multiParam.getUserid());
        System.out.println(multiParam.getUserpw());
        System.out.println(multiParam.getName());
        System.out.println(multiParam.getGender());
        System.out.println(multiParam.getEmail());
        System.out.println(multiParam.getAge());

        return multiParam; // 객체가 json 형식으로 바껴서 클라이언트에게 전송
    }


}

객체를 리턴하면 json 형식으로 변환되어 클라이언트에게 전달된다.

728x90