Spring

[Spring] Response(응답) 내려주기

P.젤리비 2022. 8. 9.
반응형

ApiController.java

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api")
public class ApiController {
    //TEXT
    @GetMapping("/text")
    public String text(@RequestParam String account) {
        return account;
    }

    //JSON
    // req - object mapper - object - method - object - object mapper - json - reaponse
    @PostMapping("/json")
    public User json(@RequestBody User user) {
        return user;
    }

    // ResponseEntity
    // 응답 상태를 201로 설정한다.
    @PutMapping("/put")
    public ResponseEntity<User> put(@RequestBody User user) {
        return ResponseEntity.status(HttpStatus.CREATED).body(user);
    }
}

User.java

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.fasterxml.jackson.databind.annotation.JsonNaming;

@JsonNaming(PropertyNamingStrategy.SnakeCaseStrategy.class)
@JsonInclude(JsonInclude.Include.NON_NULL) // 널값은 포함하지 않곘다는것
public class User {
    private String name;
    private Integer age; // int는 기본값이 0, Null값을 출력하고자 한다면 Integer를 사용하면된다.
    private String phoneNumber;
    private String address;

    public String getName() {
        return name;
    }

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

    public Integer getAge() {
        return age;
    }

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

    public String getPhoneNumber() {
        return phoneNumber;
    }

    public void setPhoneNumber(String phoneNumber) {
        this.phoneNumber = phoneNumber;
    }

    public String getAddress() {
        return address;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                ", phoneNumber='" + phoneNumber + '\'' +
                ", address='" + address + '\'' +
                '}';
    }
}

PageController.java

import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

@Controller
public class PageController {

    @RequestMapping("/main")
    public String main() {
        return "main.html";
    }

    // ResponseEntity
    @ResponseBody
    @GetMapping("/user")
    public User user() {
        var user = new User();
        user.setName("jellybee");
        user.setAddress("집");
        return user;
    }
}

main.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
Main Html Spring Boot
</body>
</html>
반응형

'Spring' 카테고리의 다른 글

[Spring] IoC (제어 역전) / DI (의존성 주입)  (0) 2022.08.09
[Spring] Object Mapper  (0) 2022.08.09
[Spring] DELETE API  (0) 2022.08.08
[Spring] PUT API  (0) 2022.08.08
[Spring] POST API  (0) 2022.08.06

댓글

💲 추천 글