[Spring] 웹 개발을 하는 세 가지 방법(3) : API

2022. 2. 8. 18:24·Spring
728x90

웹 개발의 세 가지 방법

1. 정적 컨텐츠

2. MVC와 템플릿 엔진

3. API  👈

 

정적 콘텐츠가 아니라면

HTML로 내리냐 API 방식으로 데이터를 바로 내리느냐 두 가지만 생각하면 된다!!

 

 

 

 

API

 

> 간단한 String API 구현해보기

1. HelloController에  코드 추가

@GetMapping("hello-string")
@ResponseBody
public String helloString(@RequestParam("name") String name) {
    return "hello " + name; //"hello spring"
}

@ResponseBody : HTML의 응답 Body에 직접 데이터를 넣어주겠다

뷰 없이 문자가 그대로 내려간다

 

 

2. 실행

localhost:8080/hello-string?name=spring!!!!!!! 으로 접속

다른 게 없어보이지만 페이지 소스를 다음과 같이 들어가보면

아무것도 없이 "hello spring!!!!!!!"만 들어있는 것을 확인할 수 있다...!

 

 

 

 

 

> 객체를 리턴하는 API 만들어보기 ⭐

1. HelloController에 추가

@GetMapping("hello-api")
@ResponseBody
public Hello helloApi(@RequestParam("name") String name) {
    Hello hello = new Hello();
    hello.setName(name);
    return hello
}

static class Hello{
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

 

 

2. 실행 결과

JSON 형식으로 출력되는 것을 확인할 수 있다

(@ResponseBody 하면 기본적으로 JSON 방식이 선택된다)

 

 

 

💡 Getter / Setter

윈도우에서는 Alt + Insert > Getter and Setter > Ok

get, set이 생성된다 (getName, setName)

private 변수를 메서드를 통해 접근할 수 있다

-> 자바 빈 규약(표준 방식), 프로퍼티 접근 방식

 

 

 

 

 

 

@ResponseBody 사용 원리

 

'@ResponseBody' 를 사용

- HTTP의 BODY에 문자 내용을 직접 반환

- 'viewResolver' 대신에 'HttpMessageConverter'가 동작

- 기본 문자처리 : 'StringHttpMessageConverter'

- 기본 객체처리 : 'MappingJackson2HttpMessageConverter'

- byte 처리 등등 기타 여러 HttpMessageConverter가 기본으로 등록되어 있음

 

 

 

 

 

 

 

 

 

 

 

이 포스팅은 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술을 듣고 공부한 내용을 정리한 것입니다

 

 

728x90
저작자표시 비영리 (새창열림)

'Spring' 카테고리의 다른 글

[Spring] MVC 패턴이란? Model / View / Controller / 메인 메서드 반환타입  (1) 2024.01.31
[Spring] HttpServletRequest, HttpServletResponse 객체  (1) 2024.01.31
[Spring] 웹 개발을 하는 세 가지 방법(2) : MVC와 템플릿 엔진  (0) 2022.02.08
[Spring] 웹 개발을 하는 세 가지 방법(1) : 정적 콘텐츠  (0) 2022.02.08
[Spring] 웹 개발을 하는 세 가지 방법 : 정적 컨텐츠, MVC와 템플릿 엔진, API  (0) 2022.02.08
'Spring' 카테고리의 다른 글
  • [Spring] MVC 패턴이란? Model / View / Controller / 메인 메서드 반환타입
  • [Spring] HttpServletRequest, HttpServletResponse 객체
  • [Spring] 웹 개발을 하는 세 가지 방법(2) : MVC와 템플릿 엔진
  • [Spring] 웹 개발을 하는 세 가지 방법(1) : 정적 콘텐츠
s_ih_yun
s_ih_yun
  • s_ih_yun
    CODESYUN
    s_ih_yun
  • 전체
    오늘
    어제
    • 분류 전체보기 (339)
      • Web (8)
      • Java (7)
      • Spring (19)
      • Git (16)
      • MyBatis (1)
      • HTML & CSS (14)
      • JavaScript (11)
      • DevOps (4)
      • Cloud (8)
      • Lanuage (13)
        • C++ (3)
        • Python (10)
      • DB (1)
        • MySQL (1)
        • Oracle (2)
      • Computer Science (26)
        • Concept (3)
        • Algorithm (23)
      • Baekjoon (104)
        • 단계별로 풀어보기 (78)
      • CodeUp (98)
        • Python 기초 100제 (98)
      • Programmers (2)
      • Books (3)
      • etc (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

    • Syun's Pages
  • 인기 글

  • 태그

    codeup
    aws
    git
    SourceTree
    Cloud
    BOJ
    oracle
    Python
    JavaScript
    단계별로 풀어보기
    MySQL
    CodeUp 기초 100제
    c++
    웹
    github
    알고리즘
    clean code
    web
    C
    VS Code
    자료구조
    java
    db
    Programmers
    HTML
    spring
    CSS
    myBatis
    Tistory
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_ih_yun
[Spring] 웹 개발을 하는 세 가지 방법(3) : API
상단으로

티스토리툴바