Spring

POSTMAN 사용하기

dalooong 2023. 7. 9. 13:13

POSTMAN이란?

API 개발을 보다 빠르고 쉽게 구현 할 수 있도록 도와주며, 개발된 API를 테스트하여 문서화 또는 공유 할 수 있도록 도와 주는 플랫폼이다.

 

REST API

POSTMAN은 REST API를 표현할 수 있다

💡 REST AIP란?

한 문장으로 정의한다면 HTTP URI로 잘 표현된 리소스에 대한 행위를 HTTP Method로 정의한다. 리소스의 내용은 json, xml, yaml등의 다양한 표현 언어로 정의된다. 즉, URI를 이용해서 제어할 자원을 명시하고 HTTP를 이용해서 제어명령을 내린다.

RequestMapping

클라이언트의 요청이 들어왔을 때

  • RequestMapping에 전달한 설정에 일치할 경우 실행할 메소드를 설정한다.

스프링 실습 환경세팅

의존성추가

  • build.gradle에 sqlite 라이브러리 추가
// sqlite
    runtimeOnly 'org.xerial:sqlite-jdbc:3.41.2.2'
    runtimeOnly 'org.hibernate.orm:hibernate-community-dialects:6.2.4.Final'
spring:
  datasource:
    url: jdbc:sqlite:db.sqlite
    driver-class-name: org.sqlite.JDBC
  jpa:
    hibernate:
      ddl-auto: create
    show-sql: true
    database-platform: org.hibernate.community.dialect.SQLiteDialect

build & run

  • http→MappingController 클래스 생성

@Slf4j: log 변수를 만들어준다.

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

@Slf4j //log 변수를 만들어준다.
@Controller
public class MappingController {
    private static final Logger logger
            = LoggerFactory.getLogger(MappingController.class);

pringln 대신에 logger를 사용해준다.

package com.example.http;

import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;

@Slf4j //log 변수를 만들어준다.
@Controller
public class MappingController {
//    private static final Logger logger
//            = LoggerFactory.getLogger(MappingController.class);

    // /path로 오는 GET 요청에 대해 메소드를 실행하고 싶을 때
    @RequestMapping(
           value = "/path",
            method = RequestMethod.GET
    )
    public String getPath(){
        log.info("GET /path");
        return "index";
    }
}

  • 포스트맨 이용하기
  1. 포스트맨 새 워크스페이스 생성 ‘http’

/path로 오는 GET 요청에 대해 메소드를 실행하고 싶을 때

@RequestMapping(
           value = "/path",
            method = RequestMethod.GET
    )
    public String getPath(){
        log.info("GET /path");
        return "index";
    }
  1. '/path'로 오는 POST 요청에 대해서 메소드를 실행하고 싶을 때
@RequestMapping(
            value = "/path",
            method = RequestMethod.POST
    )
     public String postPate(){
        log.info("POST /path");
        return "index";
    }
  1. '/path' 로 오는 PUT 또는 DELETE 요청에 대해서 메소드를 실행하고 싶을 때
@RequestMapping(
            value = "/path",
            method = { RequestMethod.PUT, RequestMethod.DELETE}
    )
    public String putOrDeletePate(){
        log.info("PUT or DELETE /path");
        return "index";
    }
  1. '/path'로 오는 POST 요청이면서 JSON 데이터를 포함하는 요청에 대해서 메소드를 실행하고 싶을 때
@RequestMapping(
            value = "/path",
            method = RequestMethod.POST,
            consumes = MediaType.APPLICATION_JSON_VALUE
    )
    public String consumes(){
        log.info("POST /path Content-Type: application/json");
        return "index";
    }
}

postman 세팅

 

'/path' 로 오는 POST 요청이면서 헤더에 x-likelion이라는 값이 hello로 지정되어 있을 때 메소드를 실행하고 싶을 때

@RequestMapping(
            value = "/path",
            method = RequestMethod.POST,
            headers = "x-likelion=hello"
    )
    public String headerWith(){
        log.info("POST /path with x-likelion=hello");
        return "index";
    }

'/path'로 오는 POST 요청이면서 Query Parameter로 likelion이 hello로 할당되어 있을 때 메소드를 실행하고 싶을 때

@PostMapping(
            value = "/path",
            params = "likelion=hello"
    )
    public String params(){
        log.info("POST /path with parameter likelion");
        return "index";
    }

http://localhost:8080/path?likelion=hello 하면

자동적으로 likelion hello의 값이 생성된다.