RESTful 웹서비스를 실행하기 위해서는 RestTemplate 을 직접사용하거나, GlueRestClientActivity 를 사용하는 방법이 있습니다.
Glue Example 중에 glue-maven-project 과 quick-start 를 Eclipse에 import 합니다.
Rest client activity는 다음과 같은 property를 갖습니다(참고).
RestTemplate은 다음과 같은 method를 제공합니다(참고).
glue-maven-project 는 RESTful 웹서비스를 제공하는 Applicaton으로,
quick-start 는 RESTful 웹서비스를 사용(호출)하는 Application으로 사용합니다.
제공된 예제( glue-maven-project )를 Eclipse에 import 합니다.
$ cp -r glue-examples/glue-maven-project/ sample-x # RESTful 웹서비스 제공
$ cp -r glue-examples/quick-start/ demo-x # 웹서비스 호출
$
$ # demo-x/pom.xml 의 artifactId 값을 수정한 후 import할 것.
GlueRestClientActivity 을 사용해보세요.
demo-x 의 DempApplication을 다음과 같이 수정합니다.
public class DemoApplication {
// 중략
@Bean
public CommandLineRunner run_case1( GlueRestClientActivity activity )
{
return ( args -> {
Map<String, String> props = new HashMap<>();
props.put("uri", "uri-key"); // http://localhost:8080/edu/
props.put("method", "GET");
props.put("result-key", "result");
GlueDefaultContext ctx = new GlueDefaultContext( "no-service" );
ctx.setActivityProperties(activity, props);
ctx.put("uri-key", "http://localhost:8080/edu/");
activity.runActivity(ctx);
System.out.println( "GlueRestClientActivity 실행결과: " + ctx.get("result") );
} );
}
sample-x 의 다른 REST API를 호출해보세요. uri를 변경해보세요.
public class DemoApplication {
// 중략
@Bean
public CommandLineRunner run_case1( GlueRestClientActivity activity )
{
return ( args -> {
Map<String, String> props = new HashMap<>();
props.put("uri", "uri-key"); // http://localhost:8080/edu/{serviceName}
props.put("method", "GET");
props.put("param-count", "1");
props.put("param1", "serviceName");
props.put("result-key", "result");
GlueDefaultContext ctx = new GlueDefaultContext( "no-service" );
ctx.setActivityProperties(activity, props);
ctx.put("uri-key", "http://localhost:8080/edu/{serviceName}");
ctx.put("serviceName", "sample-service");
activity.runActivity(ctx);
System.out.println( "GlueRestClientActivity 실행결과: " + ctx.get("result") );
} );
}
RestTemplate 을 사용해 보세요.
demo-x 의 DempApplication을 다음과 같이 수정합니다.
public class DemoApplication {
// 중략
@Autowired
private RestTemplate restTemplate;
@Bean
public CommandLineRunner run_case2( RestTemplate restTemplate )
{
return ( args -> {
String result = this.restTemplate.getForObject("http://localhost:8080/edu/", String.class);
System.out.println("RestTemplate 실행결과: " + result);
} );
}
sample-x 의 다른 REST API를 호출해보세요. uri를 변경해보세요.
public class DemoApplication {
// 중략
@Autowired
private RestTemplate restTemplate;
@Bean
public CommandLineRunner run_case2( RestTemplate restTemplate )
{
return ( args -> {
Map<String, Object> uriVariables = new HashMap<>();
uriVariables.put("serviceName", "sample-service");
String result = this.restTemplate.getForObject("http://localhost:8080/edu/{serviceName}", String.class, uriVariables);
System.out.println("RestTemplate 실행결과: " + result);
} );
}