본문 바로가기
Java

[eGovFrame] eGovFramework 3.6 에 RestAPI 테스트 (Jackson 까지)

by bryan.oh 2021. 8. 22.
반응형

전자정부 프레임워크
eGovFramework 3.6
Simple
Restful, RestAPI, Rest

 

설치는 이전 포스트 확인하시고요.

2021.08.22 - [Java] - [eGovFrame] 전자정부 프레임워크 3.6 설치 및 테스트 실행

 

[eGovFrame] 전자정부 프레임워크 3.6 설치 및 테스트 실행

다음 링크에서 환경에 맞는 설치파일 다운로드를 합니다. https://www.egovframe.go.kr/home/ntt/nttList.do?pagerOffset=0&searchKey=&searchValue=&menuNo=41&bbsId=18&nttId=1208 개발환경을 구성할 경로에 이..

hello-bryan.tistory.com

 

1. 프로젝트 생성.

Sample source 는 추가하지 않고 그냥 Finish 클릭.

프로젝트가 생성됐습니다.

 

2. RestController 생성

우선 package 생성

package 명 입력.

위에서 만든 package 아래에 java class 생성. (package 에서 우클릭 > New > Class)

Class 명은 HelloController

코드는

package hello.bryan.web;

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

@RestController
public class HelloController {

	@RequestMapping(value="/hello", method = RequestMethod.GET)
	public String hello(@RequestParam("name") String name){
		return String.format("nice to meet you, %s", name);
	}
}

 

3. Servlet 설정

web.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">

	<!-- DispatcherServlet -->
 	<display-name>HelloBryan</display-name>
	<servlet>
		<servlet-name>eGovFrame</servlet-name>
		<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
		<load-on-startup>1</load-on-startup>
	</servlet>
 	<!-- eGovFrame-servlet.xml파일 사용  -->
	<servlet-mapping>
		<servlet-name>eGovFrame</servlet-name>
		<url-pattern>/*</url-pattern>
	</servlet-mapping>
</web-app>

eGovFrame-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

	<!-- controller 설정 -->
	<context:component-scan base-package="hello.bryan.web" />

	<mvc:annotation-driven />

</beans>

 

4. 일단 실행.

서버가 정상적으로 실행되면

브라우저에 다음과 같이 입력하면 결과가 나옵니다.

 

5. Object 를 Json 으로 리턴하기. Jackson

jackson 라이브러리 pom 에 추가하기.

pom.xml <dependency> 와 같은 래밸로 아래 추가.

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>2.4.3</version>
		</dependency>
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>2.4.3</version>
		</dependency>

pom.xml 저장하고 프로젝트 우클릭 > run as > maven clean > maven install

servlet 에 RequestMappingHandlerAdapter 설정

eGovFrame-servlet.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:p="http://www.springframework.org/schema/p"
	xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-4.0.xsd
http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-4.0.xsd
http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd">

    <!-- 여기 추가 -->
    <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
        <property name="messageConverters">
            <list>
                <bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter" />
            </list>
        </property>
    </bean>
    
    <!-- controller 설정 -->
    <context:component-scan base-package="hello.bryan.web" />

    <mvc:annotation-driven />

</beans>

 

return 할 model class 추가

 

lombok 은 나중에 하기로 하고 지금은 Getter Setter 를 생성합니다.

코드에서 우클릭 > Source > Generate Getters and Setters.. (또는 단축키 : Alt+Shift+S 누르고 r )

이렇게 하면 소스는

User.java

package hello.bryan.model;

public class User {
	private String name;
	private String greet;
	
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public String getGreet() {
		return greet;
	}
	public void setGreet(String greet) {
		this.greet = greet;
	}
}

 

그리고 컨트롤러 소스 변경.

	@RequestMapping(value="/hello", method = RequestMethod.GET)
	public User hello(@RequestParam("name") String name){
		User user = new User();
		user.setName(name);
		user.setGreet("nice to meet you");
		return user;
	}

User class 객체를 return 합니다.

 

6. jackson (return json) 테스트

서버를 재시작하고, 아까와 같은 url 로 테스트.

class 객체가 json 으로 리턴됩니다.

 

728x90
반응형

댓글