IT/Spring

[Springboot] RESTful GET 해보기!

@욕심쟁이 2022. 1. 18. 23:38
반응형
package com.example.springboot202111.controller;

import ch.qos.logback.core.net.SyslogOutputStream;
import com.example.springboot202111.dto.UserRequest;
import org.springframework.web.bind.annotation.*;

import java.util.Map;

@RestController
@RequestMapping("/api/get")
public class GetController {

    //@RequestMapping("/hi") // get/ post / put / delete 모든 RESTful 동작
    //@RequestMapping(path = "/hi", method = RequestMethod.GET) // 메서드 설정시  get http//localhost:8000/api/get/hi
    //@GetMapping(path = "getHello") : 명시적
    @GetMapping("/getHello")    // http://localhost:8000/api/get/getHello
    public String getHello(){
        return "get Hello";
    };

    //변화하는 부분은 @PathVariable을 사용
    //public String pathVariale(@PathVariable String name){
    // @PathVariable(name = "name") name 변수명을 다르게 설정
    @GetMapping("/pathVariale/{name}") // ://localhost:8080/api/get/pathVariale/내가 입력한 path
    public String pathVariale(@PathVariable(name = "name") String pathName){
        System.out.println("PathVariable : " + pathName );
        return pathName;
    };

    //http://localhost:8000/api/get/queryParam?user=jiyeon&email=jiyoen@naver.com&age=20
    @GetMapping(path = "/queryParam")
    public String queryParam(@RequestParam Map<String, String > queryParams){
        StringBuilder sb = new StringBuilder();
        queryParams.entrySet().forEach(val -> {
            System.out.println(val.getKey());
            System.out.println(val.getValue());
            System.out.println("\n");

            sb.append(val.getKey() +" = "+ val.getValue());

        });
        return sb.toString();
    };

    //http://localhost:8000/api/get/queryParam2?user=jiyeon&email=jiyoen@naver.com&age=20
    @GetMapping(path = "/queryParam2")
    public String queryParam2(
            @RequestParam String user,
            @RequestParam String email,
            @RequestParam int age
    ){
        System.out.println(user);
        System.out.println(email);
        System.out.println(age);
        return user +" "+ email +" "+ age;
    };
    //가장 많이 사용
    //http://localhost:8000/api/get/queryParam3?user=jiyeon&email=jiyoen@naver.com&age=20
    @GetMapping(path = "/queryParam3")
    public String queryParam3(UserRequest userRequest){
        System.out.println(userRequest.getUser());
        System.out.println(userRequest.getEmail());
        System.out.println(userRequest.getAge());
        return userRequest.toString();
    };
}
package com.example.springboot202111;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Springboot202111Application {

    public static void main(String[] args) {

        SpringApplication.run(Springboot202111Application.class, args);
    }

}

반응형