본문 바로가기
💻 개발/Spring

API Web Application 만들기 - Spring MVC

by 컴쏘 2023. 12. 4.

목적

  • 클라이언트로부터 요청을 받으면 응답을 해주는 애플리케이션 만들기
    • GET /greeting 라는 요청을 보내면 인사말 응답
    • GET /greeting?name=brown 라는 요청을 보내면 name 인자를 포함한 인사말 응답

따라하기

  • Gradle 프로젝트 구축하기 프로젝트에 이어서 진행

Spring Web Starter 의존성 추가

  • 지난번에 spring 프로젝트를 만들면서 추가했으므로 넘어간다.
dependencies {
	implementation 'org.springframework.boot:spring-boot-starter-web'
}

 

관리할 객체 만들기

  • Greeting 코드 작성하기
    • lombok을 따로 설치하지 않았기 때문에 직접 필요한 함수 모두 작성하기
    • class 내부에 생성자를 만들어줘야 한다.
public class Greeting {

    private final long id;
    private final String content;
    public Greeting(long id, String content) {
        this.id = id;
        this.content = content;
    }
    
    public long getId() {
        return id;
    }
    
    public String getContent() {
        return content;
    }
}

 

Greeting

컨트롤러 만들기

  • 스프링에서는 웹 요청에 대한 처리 로직을 컨트롤러 이용해서 정의한다.
  • 컨트롤러 클래스를 만들고 메서드를 만든 뒤 요청을 메서드에 맵핑한다.
  • 이렇게 되면 매핑된 요청이 올 경우, 해당 매서드에서 요청을 처리한다.

Controller

  • HTTP Method가 GET이고, URL이 /greeting 인 요청이 올 때 greeting 메서드가 동작
  • /greeting?name=brown처럼 인자값을 넣어 줄 경우 @RequestParam 을 이용하여 메서드 파라미터로 인자를 받을 수 있다.
  • 객체를 그대로 리턴할 경우 자동으로 json 형태로 변환하여 응답

실행하여 테스트하기

  • intellij 바로 실행

/greeting
/greeting?name="brown"

 

  • gradle 이용해서 실행
    • 현재 SpringBootApplication이 2개가 있어서 intellij에서 바로 실행하는 방법만 사용하였다.

 

BDD 동아리 Spring 스터디 공부 자료를 참고하였습니다. 
우테코의 일부 코치님들이 진행하는 프로젝트에서 지원해주셨습니다. 

'💻 개발 > Spring' 카테고리의 다른 글

Spring Annotation MVC - Spring MVC  (0) 2023.12.05
HTTP - Spring MVC  (0) 2023.12.04
Gradle 프로젝트 구축하기  (0) 2023.12.04
Framework와 Project  (0) 2023.11.29
Repository Interface 메소드 실습 (1)  (0) 2023.07.20