상세 컨텐츠

본문 제목

Get API

Back-end/JavaSpringBoot

by 본투비곰손 2022. 8. 16. 23:19

본문

728x90

1. GetMethod를 지정하는 방법 

 

package com.example.newprojects.controller;

import com.example.newprojects.controller.dto.UserRequest;
import org.springframework.web.bind.annotation.*;

import java.sql.SQLOutput;
import java.util.Map;

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

    @GetMapping(path="/hello") //http://localhost:8080/api/get/hello 로 지정
    public String hello(){
        return "get Hello";
    }

    @RequestMapping("/hi") //예전 방식 // get / post/ put / delete 모두 지정 할 수 있기 때문에
    //한가지만 지정 하고 싶다면 @RequestMappin(path="/hi",method = RequestMethod.GET) 로 작성했다.
    public String  hi(){
        return "get hi";
    }

 

2. 변수를 받는 방법 

package com.example.newprojects.controller;

import com.example.newprojects.controller.dto.UserRequest;
import org.springframework.web.bind.annotation.*;

import java.sql.SQLOutput;
import java.util.Map;

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

    //http://localgost:8080/api/get/apth-variable/{name} / {}안의 값은 변하는 값
    @GetMapping("/path-variable/{name}")
    public String pathVariable(@PathVariable String name) {
        // Annotation안의 변수이름(name)은 GetMapping의 변수이름과 동일해야 한다.
        return name;
        //변수의 이름을 바꾸고 싶다면 (@PathVariable String(name="name") pathName) 로 변경할 수 있다.
    }

3. QueryParameter를 받는 방법 (1)

 

package com.example.newprojects.controller;

import com.example.newprojects.controller.dto.UserRequest;
import org.springframework.web.bind.annotation.*;

import java.sql.SQLOutput;
import java.util.Map;

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

     //쿼리파라미터
    // 검색시 사용되는 파라미터
    //구글 검색시
        // search?q = intellij
        // &oq = intellij
        // &aqs = chrome..69i57j35i39j69i59l2j0i131i433i512j0i512l5.1270j0j15
        // &sourceid = chrome
        // &ie = UTF-8
    // ?key=value&key2=value2

        //http://localhost:8080/api/get/query-param?user=steve&email=steve@gmail.com&age=30
        @GetMapping(path="query-param")
        public String queryParam(@RequestParam Map<String ,String> queryParam){

            StringBuilder sb = new StringBuilder();

            queryParam.entrySet().forEach(entry ->{
                System.out.println(entry.getKey());
                System.out.println(entry.getValue());
                System.out.println("\n");

                sb.append(entry.getKey()+"="+entry.getValue()+"\n");
            });

        return sb.toString();
    }

4. QueryParameter를 받는 방법 (2)

 

package com.example.newprojects.controller;

import com.example.newprojects.controller.dto.UserRequest;
import org.springframework.web.bind.annotation.*;

import java.sql.SQLOutput;
import java.util.Map;

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

    @GetMapping("query-param02")
    public String queryParam02(
        @RequestParam String name,
        @RequestParam String email,
        @RequestParam int age // 받는 인수가 지정된 형식이 아닐경우 400번대 에러 발생
    ){
        System.out.println(name);
        System.out.println(email);
        System.out.println(age);

        return name+ " " + email + " " + age;

    }

 

5. QueryParameter를 받는 방법 (3)

package를 생성하여 값을 받을 수 있는 객체를 만들어 준다.

가장 많이 사용되는 방법 단, 정의되지 않은 형식의 데이터는 파싱이 되지 않고 소멸 된다.

package com.example.newprojects.controller.dto;

import java.security.PrivateKey;
import java.util.PrimitiveIterator;

public class UserRequest {

    private String name;
    private String email;
    private int age;

    public String getName() {
        return name;
    }

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

    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;
    }

    @Override
    public String toString() {
        return "UserRequest{" +
                "name='" + name + '\'' +
                ", email='" + email + '\'' +
                ", age=" + age +
                '}';
    }
}
package com.example.newprojects.controller;

import com.example.newprojects.controller.dto.UserRequest;
import org.springframework.web.bind.annotation.*;

import java.sql.SQLOutput;
import java.util.Map;

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

    
    //가장 많이 사용하는 방법 객체를 만들어서 받는 방법
    //?user=steve&email=steve@gmail.com&age=30 객체가 들어오면 스프링 부트에서 판단하여 변수와 이름을 매칭 한다.
    @GetMapping("query-param03") // @RequestParam 사용 하지 않음
    public String queryParam03(UserRequest userRequest){
        System.out.println(userRequest.getName());
        System.out.println(userRequest.getEmail());
        System.out.println(userRequest.getAge());

        return userRequest.toString();

    }

}
728x90

'Back-end > JavaSpringBoot' 카테고리의 다른 글

PUT API  (0) 2022.08.17
POST API  (0) 2022.08.16
SpringBoot를 사용하여 "hello spring boot" 출력하기  (0) 2022.08.16
스프링 부트 란?  (0) 2022.08.04
HTTP Protocol  (0) 2022.08.04

관련글 더보기