오답노트

[Spring Boot] Response 본문

Java/Spring

[Spring Boot] Response

권멋져 2023. 7. 13. 09:53

Request

요청에 대한 응답으로 응답 코드와 함께 body에 데이터를 보낼 수 있다.

 

Text, Object, JSON 응답

import com.example.response.dto.User;
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;
    }

    // req -> object mapper -> object -> method -> object -> object mapper -> json -> response
    @PostMapping("/json")
    public User json(@RequestBody User user){
        return user; // 200 ok
    }

    // ResponseEntity
    @PutMapping ("/put")
    public ResponseEntity<User> put(@RequestBody User user){
        return ResponseEntity.status(HttpStatus.CREATED).body(user);
    }
}

텍스트를 응답할 땐 RequestParam을 사용하고 Object나 Json을 반환할 땐, RequestBody를 사용한다.

 

HTML 응답

import com.example.response.dto.User;
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(){
        User user = new User();
        user.setName("steve");
        user.setAddress("패스트 캠퍼스");
        return user;
    }
}

이전에 RestController를 사용한것 과 달리 Controller Annotation을 사용한다.

RequestMapping을 통해서 주소를 지정하고 html 파일명을 반환하면 브라우저에 html이 출력된다.

또한 객체를 출력할 때에는 ResponseBody를 사용한다.

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

[Spirng] IoC, DI  (0) 2023.07.13
[Spring Boot] Object Mapper  (0) 2023.07.13
[Spring Boot] PUT  (0) 2023.07.12
[Spring Boot] POST  (0) 2023.07.12
[Spring Boot] GET  (0) 2023.07.12