TIP:java
这部分相应的代码在step-6文件夹中(https://github.com/vert-x3/vertx-guide-for-java-devs)git
咱们已经加入了vertx-web模块,因此编写一个HTTP/JSON API是比较简单的,咱们将编写以下的web api:github
GET /api/pages 提供一个所有page名字和惟一标识的页面,web
POST /api/pages 建立一个新的wiki页面,数据库
PUT /api/pages/:id 更新一个wiki页面,api
DELETE /api/pages/:id 删除一个wiki页面。数组
下面是使用HTTPie command-line tool来测试API的快照:微信
咱们将在HttpServerVerticle增长新的路由handlers,由于咱们要添加新的handlers到已经存在的router中,咱们能够采用使用sub-router的方式,容许做为已经存在router的sub-router,这样咱们能够更好地组织和重用handlers。下面是API router的代码:async
1.这边定义mountSubRouter,若是请求以/api开始将会被apiRouter处理。ide
这是处理不一样API router handlers的代码:
1.处理数据查询结果映射成页面的每一个记录
2.JSON数组处理成在response payload中的key值。
3.JsonObject#encode()把JSON数据处理成String。
这边的handler和其余的handler须要处理JSON数据,validateJsonPageDocument方法用来处理检查无效和错误的信息,后面的程序处理JSON记录的数据。
handleSimpleDbReply用来完结请求
API的单元测试
在io.vertx.guides.wiki.http.ApiTest写一个基本的测试。前面咱们须要先准备一下测试环境,HTTP server verticle须要运行database verticle,因此咱们在Vert.x测试环境中须要部署这两个:
1.咱们使用不一样的JDBC URL使用内存数据库来测试。
这个测试用例简单地测试了全部的请求状况,增伤改查的状况都包括了。
TIP
测试用例中使用了Future而不是内嵌回调,这样须要async future完成或者超时。
原文连接:http://vertx.io/docs/guide-for-java-devs/
个人微信公众号: