Springboot와 Rest Api

Red Culture·2021년 6월 28일

스프링부트와 스프링 프레임워크의 차이가 뭘까?

스프링 프레임워크는 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크이고 스프링이라고도 불린다.

스프링부트는 스프링 프레임워크를 사용하기 위한 설정의 많은 부분을 자동화하여 사용자가 편하게 이용할 수 있도록 돕는다. 스프링 부트 starter dependency만 추가해주면 바로 api를 정의하고 내장된 tomcat이나 jetty로 웹 애플리케이션 서버를 실행할 수 있다. 실행환경이나 의존성 관리 등 인프라는 신경쓰지 않고 바로 코딩할 수 있다.

1) Auto Configuration: 프로젝트에서 필요한 bean들을 자동으로 등록하고 설정할 수 있게 해준다.
-@SpringBootConfiguration: 스프링부트 설정을 나타내는 어노테이션
-@EnableAutoConfiguration: 자동설정의 핵심 어노테이션으로 클래스 경로에 지정된 내용을 기반으로(@Controller, @Service, @Repository 등..) 설정 자동화를 수행한다.
-@ComponentScan: basePackages 프로퍼티 값에 별도의 경로를 설정하지 않으면 해당 어노테이션이 위치한 패키지가 루트 경로가 되어 빈으로 등록할 클래스들을 탐색한다.

2) 쉬운 의존성 관리: Spring boot Starter를 통해 의존성과 설정을 자동화해준다.

3) 서블릿 컨테이너를 내장하고 있다. Tomcat이나 Jetty를 내장하고 있어서 jar 파일만으로 배포할 수 있다.

GET 처리 방식

클라이언트에서 서버로 어떤 리소스로부터 정보를 요청하기 위해 사용하는 method이다.
controller class에 @RestController, @RequestMapping("/URI")를 정의하고
어떤 URI를 통해 컨트롤러로 들어올 것인지를 선언한다.
-> ex) http://localhost:8080/URI

아래와 같이 URI를 통한 처리, @RequestParam을 통해 파라미터를 넘기는 방식, model을 통한 json 전달 방식 3가지가 있다.

@RestController
@RequestMapping("/api")      // Localhost:8080/api
public class GetController {

    // @RequestMapping(method = RequestMethod.GET, path = "/getMethod")  // Localhost:8080/api/getMethod
    @GetMapping("/getMethod")
    public String getRequest() {

        return "Hi getMethod";
    }

    @GetMapping("/getParameter")     // Localhost:8080/api/getParameter?id=1234&password=abcd
    public String getParameter(@RequestParam String id, @RequestParam(name = "password") String pwd) {

        String password = "bbbb";

        System.out.println( "id : " + id);
        System.out.println("pwd : " + pwd);

        return id + pwd;
    }

    // Localhost:8080/api/multiParameter?account=abcd&email=study@gmail.com&page=10
    @GetMapping("/getMultiParameter")
    public SearchParam getMultiParameter(SearchParam searchParam) {
        System.out.println(searchParam.getAccount());
        System.out.println(searchParam.getEmail());
        System.out.println(searchParam.getPage());

        // json 형식 - {"account" : "", "email" : "", "page" : 0}
        return searchParam;
    }

}

POST 처리 방식

리소스를 생성/업데이트하기 위해 서버로 데이터를 보내기 위해 사용하는 method이다.
RequestMapping으로 요청받은 URI에 대해 PostMapping을 선언하고 @RequestBody를 통해 model을 선언하고 선언한 model의 데이터를 json 형태로 호출한다.

@RestController
@RequestMapping("/api")
public class PostController {

    // HTML <Form>, ajax 검색, httmp post body -> data
    // json, xml, multipart-form / text-plain

    // @RequestMapping(method = RequestMethod.POST, path = "posdMethod")
    @PostMapping(value = "/postMethod")
    public SearchParam postMethod(@RequestBody SearchParam searchParam) {

        return searchParam;
    }
}

*참고 자료
https://msyu1207.tistory.com/m/entry/Spring-VS-Spring-Boot-%EC%B0%A8%EC%9D%B4%EC%A0%90%EC%9D%84-%EC%95%8C%EC%95%84%EB%B3%B4%EC%9E%90?category=640981
https://ssoco.tistory.com/66
https://velog.io/@shson/%EC%8A%A4%ED%94%84%EB%A7%81-controller%EC%97%90%EC%84%9C-%ED%8C%8C%EB%9D%BC%EB%AF%B8%ED%84%B0%EB%A5%BC-%EB%B0%9B%EB%8A%94-%EB%8B%A4%EC%96%91%ED%95%9C-%EB%B0%A9%EB%B2%95-RequestParam-RequestBody-PathVariable

profile
자기 개발, 학습 정리를 위한 블로그

0개의 댓글