Java

[Spring Boot] Controller 상세하게 작성하는 방법

JooKit 주킷 2021. 4. 9. 06:34
목차 접기
728x90
반응형
@CrossOrigin(origins = "*")
@Controller
public class Health2Controller {

    @ResponseBody
    @RequestMapping("/health2")
    public String health2() {

        return "OK";
    }
}

| @CrossOrigin(origins = "*")__CROS

| postman에서 테스트한 결과

  • text 형식으로 출력된다.
@CrossOrigin(origins="*")
@Controller
@RequestMapping({"/health2"})
public class Health2Controller {

    @GetMapping(value = {""}, produces = Constants.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value="eb__TEST", notes="eb__TEST")
    public ResponseEntity<String> health2() {
        return ResponseEntity.ok("ok");
    }

    @GetMapping(value = {"/test"}, produces = Constants.APPLICATION_JSON_UTF8_VALUE)
    @ApiOperation(value="add__test", notes="add__test")
    public ResponseEntity<String> test() {
        return ResponseEntity.ok("테스트 성공!!!!");
    }

}
  • postman 테스트 결과, JSON 형식으로 출력된다.

| @ApiOperation 어노테이션

<dependency>
            <groupId>io.swagger</groupId>
            <artifactId>swagger-annotations</artifactId>
            <version>1.6.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.2</version>
        </dependency>
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>2.9.2</version>
        </dependency>
  • pom.xml 파일에 swagger 관련 dependency를 입력, 저장하고
    http://localhost:8080/swagger-ui.html 에 접속하면 내가 만든 api들을 따로 정리하지 않아도 보기 좋게 문서로 확인할 수 있다.
  • swagger 참고 사이트

기존 MVC Controller 와 Restful 웹 서비스 Controller(@RestController) 차이

| 기존 MVC Controller

  • view 기술을 사용
  • 주로 view(화면)을 return 한다.

| Restful 웹 서비스 Controller(@RestController)

  • 객체를 반환하기만 하면 객체 데이터는 JSON/XML 형식의 HTTP 응답을 직접 작성한다.
  • Data를 return하는 것이 주 용도이다.

ResponseEntity 란?

RestController는 별도의 View를 제공하지 않는 형태로 서비스를 실행하기 때문에, 때로는 결과데이터가 예외적인 상황에서 문제가 발생할 수 있다.

ResponseEntity는 개발자가 직접 결과 데이터와 HTTP 상태 코드를 직접 제어할 수 있는 클래스로 개발자는 404나 500같은 HTTP 상태 코드를 전송하고 싶은 데이터와 함께 전송할수 있기 때문에 좀더 세밀한 제어가 필요한 경우 사용할 수 있다.

728x90
반응형
LIST