티스토리 뷰

  • REST API 제대로 만들기.
  • Spring Boot Project 생성 후 다음과 같이 Gradle 설정
    plugins {
    	id 'org.springframework.boot' version '2.6.1'
    	id 'io.spring.dependency-management' version '1.0.11.RELEASE'
    	id 'java'
    }
    
    group = 'com.rest'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '11'
    
    configurations {
        compileOnly {
            extendsFrom annotationProcessor
        }
    }
    
    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
        implementation 'org.springframework.boot:spring-boot-starter-freemarker'
        implementation 'org.springframework.boot:spring-boot-starter-web'
        compileOnly 'org.projectlombok:lombok'
        runtimeOnly 'com.h2database:h2'
        runtimeOnly 'mysql:mysql-connector-java'
        annotationProcessor 'org.projectlombok:lombok'
        testImplementation 'org.springframework.boot:spring-boot-starter-test'
    }​

dependencies를 제외하면, 본인의 설정에 맞게 세팅 해주면 된다.

DB관련은 사용하는 DB로 바꿔주자

  • annotation 활용 SpringBootApplication을 어노테이션 
  • 해당 어노테이션을 Boot을 기능을 사용할 수 있도록 만들어 줌
package com.rest.api;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Applications {
	public static void main(String[]args){
		SpringApplication.run(Applications.class, args);
	}
}

 

  • application.yml파일에 (Default값은 properties일텐데 확장자를 yml 로 바꿔준다.) 사용할 포트지정
server:
  port: 8080
  • Controller 생성. api패키지 밑에 Controller 패키지 생성 (진입지점 생성 > 맵핑 관련 )
    controller는 진입 지점 역할 을 한다.
  • 간단한 Controller 작성
    package com.rest.api.controller;
    
    import javax.annotation.Resource;
    
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import lombok.Getter;
    import lombok.Setter;
    
    @Controller
    public class MainController {
    	
    	@GetMapping(value = "/info/string")
    	@ResponseBody
    	public String testString() {
    		return "간단한 매핑 테스트용 메시지 입니다.";
    	}
    	
    	@GetMapping(value = "/info/json")
    	@ResponseBody
    	public JForm testJson() {
    		JForm jform = new JForm();
    		jform.message = "Json 테스트!";
    		return jform;
    	}
    	
    	@GetMapping(value = "/info/page")
    	public String test() {
    		return "ftl형식의 테스트 입니다.";
    	}
    	
    	@Getter
    	@Setter
    	public static class JForm {
    		private String message;
    	}
    	
    
    }​

@Controller

Controller로 지정시 사용할 어노테이션

@GetMapping("입력할 URL값")

Get방식의 Mapping URl을 지정할때 사용

@ResponseBody

응답값을 담을 Body 를 생성한다는 개념 

 

  • 실행 Run 
    기존에는 프로젝트 자체를 실행 시켰는데 일련의 과정을 통해서 파일로 실행 가능.

    /info/string
    /info/json
    /page같은 경우는 오류가 난다.. 파일이 없기 때문. 템플릿에 추가하면 된다.
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함