API代码自动化生成

日期:2015-12-25作者:Brad Irby翻译:崔婧雯来源:TechTarget中国 英文

API开发   API自动化   

【TechTarget中国原创】

API已经非常流行,但是开发人员在缺少文档,以及产品经理需求不完整的时候,要想生成API代码任然是件痛苦的事情。本文探讨Swagger如何在应用创建的流程里,帮助保证代码和文档的一致性。

我们都认同API很好这一点,但是它的构建过程很痛苦。需要跟踪很多细节,在产品经理的想法变成文档规范,再变成开发人员代码的过程中,这些细节很容易就乱成一团。我们无法帮助改善文档环节(除非项目经理会写代码),但是如果使用Swagger的话,保持文档和代码的同步会很容易。

Swagger是一个工具,能够让任何拥有合适技术能力的人定义API,生成文档,并且甚至生成支持该API的代码。使用在线Swagger编辑器,你可以使用YAML设计API,这是一种人类可读的类似XML的语言。通过键入映射到部分URL的字符串,来定义端点(称为路径)。然后定义输入参数和输出数据的类型,想要实现的安全特性,然后就可以了。

用户可以查看的Swagger编辑器的一个示例是Instagram API(图1)。(如果你进入编辑器,选择File -> Open Example,还可以选择其他一些示例。)

图1. Swagger查看Instagram API代码

图1中的其他数据中,可以看到定义了八个路径(路径以单引号开头,点击行号后面的小的钻石图标,可以展开该节点以便查看细节)。打开这些路径的其中一个(图2),就可以看到其要求的GET HTTP动词。可以阅读描述,看到它要求三个参数。如果调用成功(响应为200),它就会返回一个对象数组,在最下面的Media定义部分定义。

API代码自动生成

图2.查看定义路径之一

类似得,可以打开Media的定义,查看该对象的属性细节,包括嵌入的对象(图3只显示了Media定义的一部分)。

API代码自动生成

图3. Media定义的部分视图

使用Swagger编辑器定义API很方便,但是它并不比其他工具更加容易。但是,在编辑器的右边栏,会自动生成所描述的API的HTML文档(图4)。文档很完整,易于阅读,并且提供了所描述API调用的尝试方式。点击底部的“Try this operation(试试该方法)”按钮,允许用户输入参数,发起调用,并且查看结果。

API代码自动生成

图4.自动生成的文档

这些特性都让这个工具很有用。使用Generate Server和Generate Client菜单选项(图5),能够以你喜欢的任意语言生成代码,从而提供或者消费该API。这个代码生成工具本身就能够帮助用户节约很多枯燥的编程时间,更不用说在API生命周期里做出很多变更时能够带给大家的帮助。另外,在使用导出功能创建本地文本文件时,整个流程完美得契合源代码控制策略。用户还可以发布文件,这样其他开发人员能够和你的数据轻松集成。

API代码自动生成

图5.使用Generate Server和Generate Client选项

编写API代码很有必要但是也很费时。使用Swagger设计API并且发布YAML能够让这个过程对于内部开发人员,以及想要消费你的数据的开发人员的工作更加简单。

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

评论
查看更多评论

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

作者>更多

Brad Irby
Brad Irby

Brad Irby has been a developer and systems architect since 1990, designing and implementing systems using the Microsoft stack.

API>更多

  • API项目中 官方客户端不再是可有可无的

    在API项目中,有官方支持的客户端才能给API社区传达积极的信息。没有官方支持客户的API就像是没有方向盘的汽车。可能是辆好车,但是却哪儿也去不了。

  • Google收购Apigee,焦点在于企业本身还是API?

    Axway的Suraj Kumar认为Apigee收购案不一定是件好事。尽管Google也许会像Borg一样行动,这也许预示着Google的态度需要转变。

  • Google的新收购是否意味着API变得更酷了?

    Google对API管理解决方案提供商Apigee的收购,我们应该怎么评价呢?是为了打造一个改变游戏的联盟吗?或者只是技术巨头想尽快吞食市场份额的尝试?

  • 如何创建成功的RESTful API设计

    设计好的API是一项困难的任务,存在很多主观指标。哪怕是完全拥抱RESTfulAPI设计并对其问题域拥有完整视图的小型初创企业最终也会出现命名不一致、界面模糊以及无记录语义等问题。

相关推荐

技术手册>更多

  • OSGI教程

    OSGI服务平台提供在多种网络设备上无需重启的动态改变构造的功能。为了最小化耦合度和促使这些耦合度可管理,OSGI技术提供一种面向服务的架构,它能使这些组件动态地发现对方。

  • 移动ALM学习指导

    移动应用生命周期管理(ALM)是一个流程,是一套实践,是针对智能手机和平板电脑进行的计划、编码、测试和部署应用。现在移动不仅仅只是简单的生产力工具,它正在向业务策略看齐。因此,组织也迅速地向员工们提供了高端的移动应用,从而交付不同来源的数据和服务。这就给软件团队提出了双重难题。同时他们又承受着快速交付的压力。他还要努力解决在生命周期各个阶段提出的一些移动ALM挑战。本手册概述了移动ALM的挑战,并且探索了不同的方法,使软件开发人员得以处理那些挑战。

  • 技术特刊:敏捷测试管理

    衡量质量并不是一件 容易 的事。传统意义上讲,软件开发团队在测试过程中习惯了缺陷发现的方法,来帮助确定产品已经准备好部署的时机。

  • Eclipse应用技术

    Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。而且,Eclipse附带的一个标准插件集,包括Java开发工具(Java Development Tools,JDT)和插件开发环境(Plug-in Development Environment,PDE)。

TechTarget

最新资源
  • 安全
  • 存储
  • CIO
  • 数据库
  • 服务器
  • 云计算