[스프링 입문] 2.스프링 웹 개발 기초 - API
🧶 𝗪𝗲𝗯/Spring

[스프링 입문] 2.스프링 웹 개발 기초 - API

 

 쿼리로 문자열 데이터 넘겨주기 

controller 파일 작성

package back.practice.controller;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class PracticeController {

    @GetMapping("hello-api1")
    @ResponseBody
    public String helloApi1(@RequestParam("name") String name) {
        return "hello query: " + name;
    }
}

정적 컨텐츠로 보여주거나, mvc-템플릿 엔진 방법, 혹은 API 로 데이터를 내려주거나 세 가지 방법을 기억하시면 됩니다.

main/java/back.practice/controller 안 PracticeController 클래스 파일입니다.

여지껏 그랬던 것 처럼 @GetMapping 을 이용하여 /hello-api1 이라는 path 를 설정해주었습니다.

@ResponseBodyHTTP의 body 부에 해당 name 데이터를 직접 넣어주겠다는 뜻입니다. (res.body 라는 것 입니다.)

ResponseBody 덕분에 해당 파일은 뷰 파일 필요없이

바로 쿼리로 값을 넘겨주면 html 에 문자열로 리턴되는 것을 확인할 수 있습니다.

(뭐 HTML 태그 같은 게 내려가는 것이 아니라 그냥 무식하게 문자열만 내려주게 되는 것입니다.)

Spring 에서 다 만들어 놓은대로 HttpMessageConverter 가 동작을 하여 단순 문자면 → StringConvertor

객체면 → JsonConvertor 가 동작하여 객체가 들어오면 JSON 으로 변경되어 웹 브라우저에게 보내게 됩니다.

 

접속 쿼리

http://localhost:8080/hello-api1?name=hihihi

 

로컬 서버로 접속하여 쿼리 넘겨주기

결과 화면

query 에 넣어준 값이 화면에 뜨는 것을 확인할 수 있습니다.

 

 

 

 쿼리로 JSON 데이터 넘겨주기 

controller 파일 작성

@GetMapping("hello-api2")
@ResponseBody
public Hello helloApi2(@RequestParam("name") String name, @RequestParam("age") int age) {
    Hello hello = new Hello();
    hello.setName(name);
    hello.setAge(age);
    return hello;
}

만약 데이터를 내리고 싶다면 어떻게 될까요? 이번에는 hello-api2 라는 path 를 연결했습니다.

이또한 쿼리로 데이터를 받습니다. 객체를 리턴하기 위해서, 반환될 객체 클래스를 일단 만들어 줍니다.

 

static class Hello {
    private String name;
    private int age;

    public String getName() {
        return name;
    }

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

    public int getAge() {
        return age;
    }

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

}

helloApi2 클래스 바로 밑에 만들어주면 됩니다. 간단한 객체입니다.

 

접속 쿼리

http://localhost:8081/hello-api2?name=data&age=10

 

로컬 서버로 접속하여 쿼리 넘겨주기

결과 화면

해당 api도 따로 뷰화면은 필요 없습니다.

이렇게 쿼리를 엮어서 json 파일로 넘겨줄 수 가 있게 됩니다. default 가 JSON 객체 입니다.

 

 

 

 

 

 

 

 

 


스프링부트 json 데이터 넘겨주기 SpringBoot 쿼리 넘겨주기

728x90