写点什么

IG GROUP 开源 RESTdoclet 项目

  • 2012-09-17
  • 本文字数:1687 字

    阅读完需:约 6 分钟

IG GROUP 已经开源了它的 RESTdoclet Maven 插件项目,该插件用于从基于 Spring REST 框架的服务中生成 Web 文档。

为什么要开源?

REST(幸与不幸,取决于您的理解)没有借鉴适用于 SOAP 服务的那种正式的 WSDL 协议定义,但在设计上,它严格遵守正式的接口规范。 服务操作直接遵照通用的 Web 规范,并不需要说明书:就像大家都知道的 GET 和 POST 操作。

可是,尽管 REST 操作可能比较好理解,但它所涉及到的数据类型可能就并非如此了。这些数据的准确文档说明是这些服务能否被客户成功采用的关键。

这并不是一个新的问题,虽然有一些像 Swagger I/O Docs 这样的工具,能够帮助从源码直接生成 API 文档,但通常这样的工具不仅需要使用一个特殊的 REST 框架,也需要人工额外的配置。况且直到现在也没有能比较方便的使用于流行的 Spring REST 框架的工具(在我写这篇文章时)。 IG GROUP RESTdoclet 的开发就是为了填补这一缺憾【1】,特别是在以下方面:

  1. 支持 Spring 3 REST 注释和 JavaDoc 导出
  2. 不需要任何额外的注释
  3. 在 Maven 的持续构建过程中,能够很轻松的用最低的配置与之集成
  4. 支持多个数据流的服务开发
  5. 发布一个类似 JavaDoc 形式的互动文档到网上,从而提供了一个与代码无关的指南,服务于消费者

怎样使用呢?

比方说,你已经用 Spring REST 建立了一个 REST 架构的 Java 服务,像下面这样:

复制代码
/**
* Find sample by unique lookup reference
*
* @param reference the sample reference, a 5 digit text field * @return the sample object corresponding to the lookup reference
*/ @RequestMapping(value = "/samples/{reference}", method = {RequestMethod.GET})
@ResponseBody
public Sample getSampleByReference(@PathVariable String reference) {return service.getSampleByReference(reference);
}

RESTdoclet 要求你的源代码必须在一个 Maven Web 工程里,既然它是一个 Maven 插件,所以它也需要在 Maven 中进行一些额外的配置。这些配置在多数情况下都是必须的,同时你也可以从 RESTdoclet 的用法页面中复制这些配置信息。

配置完成后,执行命令:mvn install , 将生成 Prestdoclet 并且安装服务元数据到你选择的文件夹中,该文件夹路径是通过环境变量中的 RESTDOCLET_DEPLOY 属性定义的。

为了查看生成的文档,你需要配置 RESTdoclet Web 应用到一个类似 Apache Tomcat 的 Web 服务器上。Web 应用程序将使用相同的 RESTDOCLET_DEPLOY 环境变量来定位一个或多个生成的服务的元数据,并将其显示在 Web 浏览器中,下面是截图。

(点击图片将放大)

图 1 – RESTdoclet service 摘要页面

(点击图片将放大)

图2 – RESTdoclet service 详细页面

从哪里可以得到它呢?

作为一个开源项目, 可以从 GitHub 上下载 RESTdoclet,也可以从 Sonatype 上以二进制的形式下载,二者都基于 Apache2 协议

一定要阅读项目Wiki 的使用说明,假如您有任何疑问或反馈请随时发email 给IG GROUP,email 地址是:open.source@iggroup.com。

关于IG Group PLC

IG GROUP 是世界领先的金融点差交易和差价合约供应商。我们是 FTSE 250 的成员之一并且拥有 1.7 亿美元的市值(截止到 2011 年 6 月)。

我们的总部位于伦敦,分公司遍布欧洲、美国、日本、新加坡和澳大利亚,我们的国际网络还在迅速发展中,在过去的 5 年中里们已经开了 11 家分公司。

IG GROUZP 在先进的交易技术、有竞争力的价格和可靠性方面已经建立了良好的信誉。我们已经赢得了很多奖项,并且一个独立研究表明,有超过 60% 的英国活跃点差交易者持有带 IG Index 的账户。【2】

【1】RESTdoclet 是在 Spring 3 REST 框架宣布之前创建的,它最初设计是用来支持专有 IG GROUP 的 REST 框架,但 Spring 3 REST 成为主流之后 RESTdoclet 代码完全重构了。

【2】投资趋势英国金融点差交易与合同差异报告(2011 年 11 月)。

查看英文原文: http://www.infoq.com/news/2012/08/RESTDocletOpenSource


感谢丁雪丰对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ )或者腾讯微博( @InfoQ )关注我们,并与我们的编辑和其他读者朋友交流。

2012-09-17 04:451809

评论

发布
暂无评论
发现更多内容

Programming abstractions in C阅读笔记:p84-p87

codists

【我和openGauss的故事】openEuler20.03上编译安装opengauss-5.0.0

daydayup

一文详述流媒体传输网络MediaUni

阿里云视频云

云计算 视频云

内卷和躺平之外,职场还有其他选择

老张

职场成长

鸿蒙智联再出发,携手伙伴共赢空间智能化,创造无限可能

HarmonyOS开发者

HarmonyOS

【我和openGauss的故事】openGauss 5.0.0企业版两节点CM高可用实践

daydayup

【我和openGauss的故事】SpringBoot连接openGauss项目实战

daydayup

云耀云服务器L实例:简单上云,智能不卡顿,性能遥遥领先

平平无奇爱好科技

SpringBoot3之Web编程

Java 架构 springboot SpringBoot3

【我和openGauss的故事】openGauss容灾集群搭建过程代码学习记录

daydayup

明道云联合Kyligence结合示范性场景应用

明道云

GitOps 与 DevOps:了解关键差异,为企业做出最佳选择

SEAL安全

DevOps 运维 gitops 企业号 8 月 PK 榜

英特尔CEO称AI PC时代于今秋开启 联想将首批发布

E科讯

移动云操作系统改造技术实践分享,跨操作系统云主机迁移优化(一)

openEuler

Linux centos 操作系统 迁移 openEuler

分享实录 | 将 NGINX 打造成功能强大的 API 网关(上)

NGINX开源社区

nginx 微服务 k8s API api 网关

云计算时代,华为云云耀云服务器L实例为何受到企业和开发者青睐

YG科技

【我和openGauss的故事】openGauss集群故障节点替换操作

daydayup

山东布谷科技直播系统源码热点分析:不同芯片实现高质量编码与渲染视频的GPU加速功能

山东布谷科技

NKD:容器云集群与 OS 一体化运维利器

openEuler

Linux Kubernetes 云原生 操作系统 openEuler

三步建站,两倍性能!云耀云服务器L实例开启简单上云第一步!

平平无奇爱好科技

javascript对象基础

timerring

JavaScript

OpenGauss与NVM

daydayup

【我与openGauss的故事系列】openGauss 5.0.0全密态数据库应用小试

daydayup

BenchmarkSQL 5.0 压测 openGauss 5.0.0 案例分享

daydayup

Java中final、finally和finalize的区别

java易二三

Java 程序员 计算机 final

上云简单又不简单,华为云云耀云服务器L实例的用户体验究竟如何?

平平无奇爱好科技

上云没那么难,华为云云耀云服务器L实例助力中小企业和开发者开启上云第一步

平平无奇爱好科技

【我和openGauss的故事】在vm中安装openEuler及使用yum安装openGauss

daydayup

IG GROUP开源RESTdoclet项目_REST_Robert Morschel_InfoQ精选文章