REST API는 요청/응답 통신을 위한 아키텍처 스타일입니다.
GET, POST, PUT 등과 같은 HTTP Method를 수용합니다.
spring-boot-starter-web 를 이용해서 REST API 를 개발할 수 있습니다.
REST API와 관련된 주요 annotation 은 다음과 같습니다.
다음은 개발시, 필요한 사항입니다.
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
@SpringBootApplication
public class SampleApplication {
public static void main(String[] args) {
SpringApplication.run(SampleApplication.class, args);
}
}
@RestController
@RequestMapping( value = "/edu" )
public class SampleController {
@GetMapping
public String getVersion() {
return "1.0.0";
}
}
. ____ _ __ _ _
/\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
\\/ ___)| |_)| | | | | || (_| | ) ) ) )
' |____| .__|_| |_|_| |_\__, | / / / /
=========|_|==============|___/=/_/_/_/
:: Spring Boot :: (v2.0.6.RELEASE)
.
.
.
2019-01-25 09:47:21.494 INFO 6696 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/edu],methods=[GET]}" onto public java.lang.String com.poscoict.sample.rest.SampleController.getVersion()
2019-01-25 09:47:21.494 INFO 6696 --- [ main] s.w.s.m.m.a.RequestMappingHandlerMapping : Mapped "{[/edu/{serviceName}],methods=[GET]}" onto public java.util.List<java.util.Map<java.lang.String, java.lang.String>> com.poscoict.sample.rest.SampleController.runGlueService(java.lang.String,javax.servlet.http.HttpServletRequest)
glue-maven-project 예제를 실행해 볼 수 있습니다.
$ git clone https://github.com/poscoict-glueframework/glue-examples.git
$ cd glue-examples/
$ cd glue-maven-project/
$ mvn clean package # Maven Build ( Excutable Jar 생성 )
$ java -jar target/sample.jar # Excutable Jar 실행
$ git clone https://github.com/poscoict-glueframework/glue-examples.git
$ cd glue-examples/
$ cd glue-maven-project/
$ mvn spring-boot:run # Spring Boot Maven Plugin으로 실행
제공된 예제( glue-maven-project )를 Eclipse에 import 합니다.
$ cp -r glue-examples/glue-maven-project/ sample-x # sample-x 로 복사
$
$ # sample-x/pom.xml 의 artifactId 값을 수정한 후 import할 것.
제공된 예제의 SampleController 에 삭제 API(DELETE request)를 추가합니다.
@RestController
@RequestMapping( value = "/edu" )
public class SampleController {
@Autowired
private EmpRepository repository;
@DeleteMapping( path = "{empno}" )
public String deleteData(@PathVariable String empno) {
repository.deleteById(empno);
return "deleted";
}
}
Spring Application을 실행한 후, 콘솔 로그에서 다음과 같은 것을 확인해 보세요.
Mapped "{[/edu],methods=[DELETE]}" onto public java.lang.String com.poscoict.sample.rest.SampleController.deleteData()