2017년 6월 15일 목요일

Vertx 연습 - web

소스: 

https://github.com/julyinsung/vertx_sample/tree/master/vertx-web

참고:

vertx-web: http://vertx.io/docs/vertx-web/java/
rest example: https://github.com/vert-x3/vertx-examples/blob/master/web-examples/src/main/java/io/vertx/example/web/rest/SimpleREST.java

환경:

vertx 3.x, java1.8, Eclipse

개요:

vertx의 web 라이브러리를 이용하여 간단한 rest api서버를 만들고 mongodb에 조회및 insert 기능.
rest 구현 클래스와 mongodb 클래스는 eventbus를 이용한다.

설명:

vertx web을 사용하기 위해서는 pom.xml에 dependency를 추가한다.

<dependency>
<groupId>io.vertx</groupId>
<artifactId>vertx-web</artifactId>
<version>3.4.1</version>
</dependency>
view raw pom.xml hosted with ❤ by GitHub
vertx web에서 HTTP request를 해당 URL로 매칭하기 위해서 Router를 사용한다.

public void start() {
// router를 생성한다. router에 여러 설정을 할 수 있다.
Router router = Router.router(vertx);
router.route().handler(BodyHandler.create());
//router.route().handler(BodyHandler.create().setBodyLimit(1));
//router.route().consumes("application/json").produces("application/json");
// url 매핑
router.get("/book").handler(this::handlerGet);
router.put("/book/title").handler(this::handlerPut);
// event bus
eb = vertx.eventBus();
// 다른 verticle를 deploy한다.
vertx.deployVerticle("vertx.mongo.sample.MongodbpersisterVerticle");
// http 서버를 띄운다.
vertx.createHttpServer().requestHandler(router::accept).listen(8080);
}
보내는 쪽은 send를 받는 쪽은 consumer메소드를 사용한다.
당연히 address는 같아야 한다.
vertx.eventBus().send(address, message, handler)
vertx.eventBus().consumer(address, handler)

댓글 없음:

댓글 쓰기