Spring Boot

GET API 실습

운동하는 주니어개발자 2023. 4. 22. 01:45

오늘 공부한 내용은 Spring_Boot에 대해 공부하였다. 오늘부터는 Spring에 대해서 쭉 공부할 예정이다.

오늘 공부한 내용에 대해 설명하겠다. 오늘은Spring_Boot에 대해 공부하였고 GET API에 대해서 실습을 하였다.

Spring_Boot

Spring_Boot는 단순히 실행되며 프로덕션 제품 수준의 스프링 기반 어플리케이션을 쉽게 만들 수 있다.

Spring Boot 어플리케이션에는 Spring 구성이 거의 필요 하지 않다.

Spring Boot java -jar 로 실행하는 Java 어플리케이션을 만들 수 있다.

주요목표

Spring 개발에 대해 빠르고 광범위하게 적용할 수 있는 환경

기본값 설정이 있지만 설정을 바꿀 수 있다.

대규모 프로젝트에 공통적인 비 기능 제공 (보안, 모니터링 등등)

XML 구성 요구사항이 전혀 없다.

즉 핵심만 이야기를 하자면

1. 어플리케이션 개발에 필수 요소들만 모아두었다.

2. 간단한 설정으로 개발 및 커스텀이 가능하다.

3. 간단하고 빠르게 어플리케이션 실행 및 배포가 가능하다.

4. 대듀모프로젝트(운영환경)에 필요한 비 기능적 기능도 제공한다.

5. 오랜 경험에서 나오는 안정적인 운영이 가능하다.

6. Spring에서 불편한 설정이 없어졌다. (XML 설정 등등)

이렇게 Spring_Boot에 대해 간단하게 공부하였다. 다음으로는 Hello Spring Boot에 대해 실습을 하겠다.

우선 실습하기에 앞서 크롬 웹 브라우저에서 테스트가 가능하지만

새로운 테스트 브라우저를 설치하여 테스트를 하기 위해 테스트 브라우저 Talend API Tester를 설치하겠다.

Talend API Tester 설치방법

  1. 크롬에 접속한 후 크롬 웹스토어를 검색한다.
  2. 크롬 웹스토어에 접속하여 검색창에 rest api client를 검색한다.
  3. 우쯕에 확장 프로그램 더보기를 클릭한 후 Talend API Tester를 설치하면 된다.

Hello Spring Boot (API controller)

package com.example.hello.controller;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController // 해당 Class는 REST API 처리하는 Controller
@RequestMapping("/api") // RequestMapping은 URI를 지정해주는 Annotation
public class ApiController {

    @GetMapping("/hello") // http://localhost:9090/api/hello가 매핑이 됨.
    public String hello() {
        return "hello spring boot!";
    }

}

Hello Spring Boot 테스트 결과 화면

이와 같이 get방식으로 주소를 검색 후 send를 클릭하면 body부분에 return 값이 출력되는 것을 볼수있다.

200숫자가 뜨면 정상적으로 값을 받아온거고 다른 404 등 번호가 뜨면 에러가 난것이다.

다음은 GET API에 대해서 실습을 하겠다. 저번 블로그에 정리하였던 표를 가져오겠다.

표를 보면 GET메소드가 있고 PathVariable에 대해 실습을 하겠다.

GET API (Get Controller)

package com.example.hello.controller;

import org.springframework.web.bind.annotation.*;

@RestController
@RequestMapping("/api/get")
public class GetApiController {

    // 첫번 째 GetMapping 방법
    @GetMapping(path = "/hello") // http://localhost:9090/api/get/hello로 매핑 후 동작
    public String hello() {
        return "get Hello";
    }

각 코드의 설명은 소스코드 주석에 작성되있으므로 참고 부탁드립니다.

각 코드의 결과화면을 보여주겠다. 우선 처음으로 GetMapping 방식이다.

다음은 옛날에 사용하였던 Mapping방식이다.

package com.example.hello.controller;

import org.springframework.web.bind.annotation.*;

// @RequestMapping("/hi") 이런식으로 사용을 하면 get / post / put / delete 등 모든 메소드가 동작하게 된다.

    // 이러한 방식은 예전에 사용되던 mapping방법이고 위의 주석 코드와 아래 코드를 둘다 합친것이 GetMapping이다.
    // get만 불러오고 싶을 경우에는 이렇게 작성해야 하고 주소는 http://localhost:9090/api/get/hi로 지정됨.
    @RequestMapping(path = "/hi", method = RequestMethod.GET)
    public String hi() {
        return "hi";
    }

다음은 특정 입력값에 의해 변화하는 값이 들어오는 예제를 실습하겠다.

package com.example.hello.controller;

import org.springframework.web.bind.annotation.*;

     // http://localhost:9090/api/get/path-variable/{name} 이렇게 작성하면 name은 계속 변화를 하기 때문에 아래와 같이 계속 추가를 할 수 없다.
     // http://localhost:9090/api/get/path-variable/{spring}
     // http://localhost:9090/api/get/path-variable/{java}와 같이 변화하는 값이 들어올 때 마다 주소를 계속 만들면서 메소드를 추가할 수 없으므로

    @GetMapping("/path-variable/{name}") // path-variable뒤에 /{}를 붙여주고 그 안에 무엇을 받을건지 작성해준다.
    // "/path-variable/{name}"의 name과 아래 코드의 @PathVariable String name의 변수명과 같아야 한다.
    // 그러므로 변수명이 String 타입의 name로 일치하게 되는것.
    public String pathVariable(@PathVariable String name) {
        System.out.println("PathVariable : "+name);
        return name;

다음은 개발을 하다가 /path-variable/{name}에다가 name을 해놨는데 변수에는

이름을 다르게 설정해야 할 때는 변수 이름을 다른걸로 선언하고@PathVariable(name = "name")와 같이

@PathVariable 뒤에 주소에 적힌 이름과 동일하게 적어주면 된다.

// 여기서 개발을 하다가 /path-variable/{name}에다가 name을 해놨는데 변수에는 이름을 다르게 설정해야 할 때는
    // 변수 이름을 다른걸로 선언하고 @PathVariable(name = "name")와 같이 @PathVariable 뒤에 주소에 적힌 이름과 동일하게 적어주면 된다.
    @GetMapping("/path-variable/{name}")
    public String pathVariable(@PathVariable(name = "name") String pathName) {
        System.out.println("PathVariable : "+pathName);
        return pathName;
    }

    // http://localhost:9090/api/get/query-param?user=steve&email=steve@gmail.com&age=23

}

다음은 특정 입력값에 의해 변화하는 값이 들어오는 예제에 여러가지 값을 입력 후

테스트한 결과이다.

이상으로 오늘 공부한 내용은 여기까지 이다. 내일은 GET메소드의 Query Parame ter에 대해 이어서 공부하겠다. 역시 이론보다 실습이 더 지루하지 않은거 같다. 재밌다.

그럼 다음 이시간에 돌아오겠다. 배위 ~~

'Spring Boot' 카테고리의 다른 글

AI 검증 비즈니스 프로젝트  (0) 2024.08.23
IoC, DI  (0) 2023.04.22
Object Mapper에 모범사례 실습  (0) 2023.04.22
PUT, DELETE, Response내려주기 실습  (0) 2023.04.22
GET(QueryParame ter), POST  (0) 2023.04.22