博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Vert.x 提供web API 译<八>
阅读量:6222 次
发布时间:2019-06-21

本文共 1191 字,大约阅读时间需要 3 分钟。

hot3.png

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

172423_C5gF_2277632.png

Web sub-routers

我们将在HttpServerVerticle增加新的路由handlers,因为我们要添加新的handlers到已经存在的router中,我们可以采用使用sub-router的方式,允许作为已经存在router的sub-router,这样我们可以更好地组织和重用handlers。下面是API router的代码:

172959_hixq_2277632.png

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

Handlers

这是处理不同API router handlers的代码:

Root resource

173206_7IrO_2277632.png

    1.处理数据查询结果映射成页面的每个记录

    2.JSON数组处理成在response payload中的key值。

    3.JsonObject#encode()把JSON数据处理成String。

Getting a page

173605_csCz_2277632.png

Creating a page

173626_lLdZ_2277632.png

这边的handler和其他的handler需要处理JSON数据,validateJsonPageDocument方法用来处理检查无效和错误的信息,后面的程序处理JSON记录的数据。

173839_qSUr_2277632.png

Updating a page

173859_mFdn_2277632.png

handleSimpleDbReply用来完结请求

173933_K3LR_2277632.png

Deleting a page

173955_x74Y_2277632.png

API的单元测试

在io.vertx.guides.wiki.http.ApiTest写一个基本的测试。前面我们需要先准备一下测试环境,HTTP server verticle需要运行database verticle,所以我们在Vert.x测试环境中需要部署这两个:

174429_Pl4O_2277632.png

    1.我们使用不同的JDBC URL使用内存数据库来测试。

这个测试用例简单地测试了所有的请求情况,增伤改查的情况都包括了。

174747_vlil_2277632.png

174806_GzLk_2277632.png

TIP

测试用例中使用了Future而不是内嵌回调,这样需要async future完成或者超时。

 

原文链接:http://vertx.io/docs/guide-for-java-devs/

103728_2T6n_2277632.png

我的微信公众号:

223108_3TsV_2277632.png

转载于:https://my.oschina.net/u/2277632/blog/1583944

你可能感兴趣的文章
ORACLE 创建表空间
查看>>
keepalived+双主架构
查看>>
robotframwork的WEB功能测试(二)—登录
查看>>
java_有秒计时的数字时钟
查看>>
最小生成树-Prim算法与Kruskal算法
查看>>
阅读笔记11
查看>>
Javascript中大括号“{}”的多义性
查看>>
Loadrunner Get&Post方法性能测试脚本解析
查看>>
Android manifest 获取源代码
查看>>
第三讲课后作业1
查看>>
Studio快捷键
查看>>
弹丸类以及魂类的构想
查看>>
Daily Srum 10.21
查看>>
11-13 js操作css样式
查看>>
html5 css练习 画廊 元素旋转
查看>>
关于JS
查看>>
你得学会并且学得会的Socket编程基础知识(转)
查看>>
[Python]安装完pip、pygame后,仍然import pygame报错
查看>>
吃鸡蛋引发的血案,详解内存中的字节序
查看>>
【1139】数据结构上机测试2-2:单链表操作B (逆序建表+重复元素删除)
查看>>