TIP:
这部分相应的代码在step-6文件夹中(https://github.com/vert-x3/vertx-guide-for-java-devs)
我们已经加入了vertx-web模块,所以编写一个HTTP/JSON API是比较简单的,我们将编写如下的web api:
GET /api/pages 提供一个全部page名字和唯一标识的页面,
POST /api/pages 创建一个新的wiki页面,
PUT /api/pages/:id 更新一个wiki页面,
DELETE /api/pages/:id 删除一个wiki页面。
下面是使用来测试API的快照:
Web sub-routers
我们将在HttpServerVerticle增加新的路由handlers,因为我们要添加新的handlers到已经存在的router中,我们可以采用使用sub-router的方式,允许作为已经存在router的sub-router,这样我们可以更好地组织和重用handlers。下面是API router的代码:
1.这边定义mountSubRouter,如果请求以/api开始将会被apiRouter处理。
Handlers
这是处理不同API router handlers的代码:
Root resource
1.处理数据查询结果映射成页面的每个记录
2.JSON数组处理成在response payload中的key值。
3.JsonObject#encode()把JSON数据处理成String。
Getting a page
Creating a page
这边的handler和其他的handler需要处理JSON数据,validateJsonPageDocument方法用来处理检查无效和错误的信息,后面的程序处理JSON记录的数据。
Updating a page
handleSimpleDbReply用来完结请求
Deleting a page
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/
我的微信公众号: