RestController (브라우저에 클래스 정보 보여주기)

2022.09.16 - [공부/Spring (Sparta) -] - API, JS

 

데이터를 서버에서 전달받는 형식이 JSON이라는것을 알 수 있었다. 

이 때 JSON형태로 데이터를 반환하기 위해 RestController를 사용한다.

 

 

REST

서버의 응답이 JSON형식임을 나타낸다.

= HTML, CSS, JS등을 주고받을 때는 REST를 붙이지 않는다.

 

Controller

클라이언트의 요청을 전달받는 코드를 말한다.

이 중 JSON만을 돌려주는 것을 RestController라고 하는 것 '~'

 

 

 

 

그럼 RestController를 만들어보자.

 

이 때 '@'로 시작하는 것들은 Spring 에서 자주 사용하는 Annotation이라는 것으로, 자바 소스코드에 추가하여 사용할 수 있는 메타데이터의 일종이다.

 

 

 

 

예를 들어 Profile class 를 만들 때

더보기
package com.eunki96.test01;

public class Profile {
    private String name;
    private int age;
    private String hobby;

    public Profile(){
    }

    public Profile(String name, int age, String hobby){
        this.name = name;
        this.age = age;
        this.hobby = hobby;
    }

    //Getter
    public String getName(){
        return this.name;
    }
    public int getAge(){
        return this.age;
    }
    public String getHobby(){
        return this.hobby;
    }

    //Setter
    public void setName(String name){
        this.name = name;
    }
    public void setAge(int age){
        this.age = age;
    }
    public void setHobby(String hobby){
        this.hobby = hobby;
    }

}

에서 Getter Setter 부분을 일일이 만들기 귀찮으므로,

 

 

 

@Getter, @Setter를 이용해보면 다음과 같이 된다.

더보기
package com.eunki96.test01;

import lombok.Getter;
import lombok.Setter;

@Getter
@Setter
public class Profile {
    private String name;
    private int age;
    private String hobby;

    public Profile(){
    }

    public Profile(String name, int age, String hobby){
        this.name = name;
        this.age = age;
        this.hobby = hobby;
    }
}

 

 

 

Annotation을 사용하니 확 줄어들었다. 기능도 동일하다.

너무 편리한것..!

 

 

 

 

그럼 이어서 ProfileController를 만들어보자.

더보기
package com.eunki96.test01.controller;

import com.eunki96.test01.Profile;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ProfileController {
    @GetMapping("/profiles")
    public Profile getProfile(){
        Profile profile = new Profile();
        profile.setName("정은기");
        profile.setAge(26);
        profile.setHobby("만화보기");

        return profile;
    }
}

 

 

 

@RestController = @Controller + @ResponseBody

@Controller 어노테이션은 기본적으로 view페이지를 찾아서 보여준다.

그리고 REST API의 경우는 각 클래스 메소드마다 @ResponseBody를 추가해서 데이터를 반환하도록 해주었다.

@RestController를 이용하면 알아서 view가 아니라 데이터를 그대로 넘겨주게 된다.

 

 

 

@GetMapping

브라우저에서 GET 방식으로 정보를 요청할 때,

위 예제에서는 주소 뒷부분이 "/profiles"일 경우 getProfile 메소드를 실행한다.

 

 

 

 

 

 

다음과 같이 클래스가 브라우저에 나타난다

 

'Spring > Spring 정리' 카테고리의 다른 글

API - 2 (GET, POST)  (0) 2022.09.21
DTO  (2) 2022.09.19
JPA - 2 /CRUD로 행복회로 돌려보기(실습)  (0) 2022.09.18
JPA - 1  (0) 2022.09.17
API - 1 (JSON)  (0) 2022.09.16