Vert.x 提供web API 译<八>

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的快照:微信

Web sub-routers

咱们将在HttpServerVerticle增长新的路由handlers,由于咱们要添加新的handlers到已经存在的router中,咱们能够采用使用sub-router的方式,容许做为已经存在router的sub-router,这样咱们能够更好地组织和重用handlers。下面是API router的代码:async

    1.这边定义mountSubRouter,若是请求以/api开始将会被apiRouter处理。ide

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/

个人微信公众号:

相关文章
相关标签/搜索