速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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:451826

评论

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

云桌面有什么技术特点?应用场景是什么?

青椒云云电脑

桌面云 云桌面 云桌面解决方案

移动图形工作站分类、结构和功能

青椒云云电脑

图形工作站

老生常谈:Web 与低代码开发

快乐非自愿限量之名

Web 前端开发 低代码 开发

自动化接口测试工具 AREX 0.6.2 版本发布

AREX 中文社区

开源 自动化测试 接口测试

DAPP代币燃烧质押项目系统开发丨详情开发

l8l259l3365

Lazada商品详情API(lazada.item_get)获取商品的评论和评分信息

技术冰糖葫芦

API

图形工作站有必要么?图形工作站电脑特点

青椒云云电脑

图形工作站 移动图形工作站

Databend 的算力可扩展性

Databend

和鲸解放军总医院连续生理数据分析引擎入选爱分析数据智能最佳实践案例

ModelWhale

人工智能 大数据 数字化转型 企业管理 数智化

爬虫工具(tkinter+scrapy+pyinstaller)

快乐非自愿限量之名

工具 爬虫 爬虫工具

OmniPlan Pro 4 for Mac(项目流程管理工具) v4.6完美激活版

mac

项目管理软件 苹果mac Windows软件 OmniPlan Pro

lazada商品列表数据接口(lazada.item_search)丨lazada API接口

tbapi

lazada商品详情数据接口 lazada商品数据接口 lazada API接口 lazada商品列表数据接口

走进龙芯中科交流会圆满结束!深入探讨未来合作规划 | 理事长走进系列

OpenAnolis小助手

合作伙伴 龙蜥社区 龙芯中科 理事

玩转低代码可视化平台,软件开发如此简单!

互联网工科生

软件开发 低代码 可视化开发 JNPF

优化独立站网页布局,提升30%用户留存

九凌网络

体育直播平台系统源码:如何有效防止后门、恶意代码和漏洞

软件开发-梦幻运营部

普及旗舰音质,一加 Buds 3正式发布 售价499元

编程猫

官宣|硬核阵容曝光!PolarDB开发者大会全议程公布

阿里云瑶池数据库

数据库 阿里云 云原生 开发者大会

喜讯丨上海和今信息科技有限公司入选2023年上海市专精特新中小企业名单

ModelWhale

人工智能 科技 专精特新企业

SEO内容页面性能优化全攻略

九凌网络

2023 年最先进认证方式上线,Authing 推出 Passkey 无密码认证

Authing

身份认证 Authing 无密码认证 Passkey

OpenTiny 2023年度共建者榜单大曝光!!!

OpenTiny社区

开源 前端

软件开发隐藏报价和虚假信息,合约如何来提高安全性

软件开发-梦幻运营部

大数据开发与低代码:加速数据处理与解决方案开发

EquatorCoco

数据库 低代码 大数据开发

一文解释Linux的内存分页管理

伤感汤姆布利柏

软件测试开发/全日制丨软件开发流程 学习笔记

测试人

软件测试

全新升级!腾讯云大数据ES Serverless服务开启日志分析新体验

腾讯云大数据

ES

软件测试开发/全日制丨自动化测试定位策略 学习笔记

测试人

软件测试 测试开发

Vue3构建的低代码可视化平台

高端章鱼哥

Vue 低代码 前端框架 JNPF

低代码:实现数据可视化的强大助手

不在线第一只蜗牛

数据库 低代码 数据可视化

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