관리 메뉴

샐님은 개발중

[섹션1] Spring Boot로 개발하는 RESTful Service 본문

인프런 - Spring Boot 3.x 를 이용한 RESTful Web

[섹션1] Spring Boot로 개발하는 RESTful Service

샐님 2024. 7. 21. 19:48
728x90
반응형

 

1. API 설계

 

REST API : Endpoint , url

첫번째 / 두번째의 엔드포인트가 같지만 다른 메소드를사용함으로서 적 url를 가지고 여러개의 api 설계가 가능

- url 의 종류는 4개가 나왔지만 메소드는 7가지가 나옴.

 

 

2. Spring boot 프로젝트 생성

1. Spring boot 프로젝트 실행

 

출력해서 나오는 빈들을 사용가능함.

 

2. Controller 작성

 

결과

    @GetMapping(path="/hello-world-bean")
    public HelloWorldBean helloworldBean(){
        // 반환 형식이 bean 타입으로 되어있고 이렇게 전달하게 되면 스프링 부트에서는 이것을 자동으로 responsebody 로 변환 시켜주고 있기 때문에
        // json 형태 값을 가지고 데이터가 나타내질 것임
        return new HelloWorldBean("Hello World!");
    }

 

bean 패키지 생성 후 HelloWorldBean.java 생성

package kr.co.consulting.myrestfulservice.bean;

import lombok.AllArgsConstructor;
import lombok.Data;

@Data // 프로퍼티의 setter/ getter 생성
@AllArgsConstructor // 현재 가지고 있는 모든 프로퍼티들을 다 사용
public class HelloWorldBean {
    private String message;
//    public HelloWorldBean(String message){
//        this.messae = message;
//
//    }
}

 

결과 

 

3. 스프링 부트 동작 원리

1. 스프링 부트의 설정 파일 : application.yml or application.properties

 

 

 

2. DispatcherServlet -> '/'

서블릿 컨테이너 = 서블릿 어플리케이션을 실행할 수 있는 환

-클라이언트의 모든 요청을 한곳에 받아서 처리

- 요청에 맞는 Handler 로 요청 전달

- Handler 의 실행 결과를 Http Response 형태로 만들어서 반환

 

4. Path Variable (가변 파라미터)

api -> 에서 interface 는 약속이고 API 를 제공하는 사람이 정의한 방식대로 사용을 해야한다는 약속이며, 정해지지 않은 API를 호출하게 되면 PAGE NOT FOUND또는 NOT FOUND라는 에러 코드를 반납하게 되고 정의되지 않은 메소드를 호출하게 되면 METHOD NOT ALOOWED 라는 에러 메시지를 받게됨.

 

 

HelloWorldController.java

    @GetMapping(path="/hello-world-bean/path-variable/{name}")
    public HelloWorldBean helloWorldBeanPathVariable(@PathVariable String name){
        return new HelloWorldBean(String.format("Hello World, %s", name));
    }

 

결과

 

 

728x90
반응형