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

在API项目中,有官方支持的客户端才能给API社区传达积极的信息。

没有官方支持客户的API就像是没有方向盘的汽车。可能是辆好车,但是却哪儿也去不了。

当然可以做一个方向盘,但这会是一项耗时的工作而且还会有风险。集成“方向盘”这件事情制造商当然比你更在行了。

虽然承认这一点有点尴尬,但我也曾经是不愿替自己的API项目开发官方客户端的。我们会说:“我们不能所有事情都支持。手上积压的无需学习一门全新语言的工作就已经够多了。”虽然这样的心态不算坏,但却有点误导人。

最重要的是,API不仅仅只是关乎代码了,还与社区有关。开发者之所以“团结在自己喜爱的API周围”,是因为开发API的公司尊重他们的价值,并且跟社区一起让API变得更好。

如果在Java API客户端上认真尝试,并且把它开源出来让更聪明的人改进它的话,那就不会给其他Java开发者造成伤害。

没有官方支持客户端的API就像无源之水,会让API变得很糟糕。预期你的消费者从零开始集成你的API,你所传达出来的讯息是,你的API并不是组织优先要考虑的。官方开源的API客户端表明你的API有更高水平的支持,同时也鼓励你和消费者之间进行开放协作和讨论。

PHP,COBOL,Ruby还是C#?

不幸的是,我们都知道光“有”官方API客户端并没有实质性的作用。有很多事情需要考虑和筹谋,最重要的是该支持多少种语言。

确切的回答要取决于API本身和组织的能力,但最常见的三种要支持的语言是Ruby、PHP和Node.js(尽管Go、Python和Java也非常流行)。

你还应该随时掌握社区的动态。尽管第三方客户端未必需要得到“官方支持”,但无疑可以得到你的组织打上“官方推荐”的标签。这是跟社区互动的一种很好的方式,而且并不需要你承担太多东西。

开源你的API客户端

因为你要用若干不同语言开发多个开源项目,所以知道每一种语言开发和部署的最佳实践至关重要。

比方说,虽然在开发和维护PHP库方面你可能是位大师,但你可能还得重温一下RubyGems或者Node Package Manager这样的服务。开源API项目意味着遵循最佳实践不是可有可无的,因为你是把自己面向社区大部分人开放,要接受他们挑剔的目光。很多情况下,这是很有价值的事情,但如果只是半成品就拿出来说Python库做好了,这样是蒙不了人的。

开源你的API客户端是一件很值得赞叹的事,但你永远都应该确保社区遵循一定的规则。GitHub对执行贡献者指南上有出色的支持,还有一个出色的内置问题跟踪器,但是你的成功之路是无法自动化的。

你的API项目至少应该有一个README文件,里面应该概括了有关的每一条重要信息。考虑以下问题:

如何进行单元测试?

是不是在利用持续集成/持续交付工具,如果是,贡献者如何才能利用这些工具?

项目的授权模式是什么样的?

这些都是很重要的事情,如果处理得好,就可以把一个开源项目引向成功。这一成就反过来也会导致你的官方API客户端的成功。

最后,你的官方API客户端的开发和管理应该是有趣的、能打造社区体验的。尽管这类努力增加了你的团队对API的投入,但你们的付出在消费者和贡献者眼里是有目共睹的。

本文转自d1net(转载)

时间: 2024-09-14 15:16:38

API项目中 官方客户端不再是可有可无的的相关文章

Web API项目中使用Area对业务进行分类管理

在之前开发的很多Web API项目中,为了方便以及快速开发,往往把整个Web API的控制器放在基目录的Controllers目录中,但随着业务越来越复杂,这样Controllers目录中的文件就增加很快,难以管理,而且如果有不同业务模块有重复的控制器名的话,还需要尽量避免.引入Area的作用就是把控制器按照不同的业务模块进行区分,方便管理,而且控制器名称可以重名. 1.Web API项目引入Area进行分类 Area在项目中可以称之为区域,每个Area代表应用程序的不同功能模块,Area 使每

在基于MVC的Web项目中使用Web API和直接连接两种方式混合式接入

在我之前介绍的混合式开发框架中,其界面是基于Winform的实现方式,后台使用Web API.WCF服务以及直接连接数据库的几种方式混合式接入,在Web项目中我们也可以采用这种方式实现混合式的接入方式,虽然Web API或者WCF方式的调用,相对直接连接数据库方式,响应效率上略差一些,不过扩展性强,也可以调动更多的设备接入,包括移动应用接入,网站接入,Winfrom客户端接入,这样可以使得服务逻辑相对独立,负责提供接口即可.这种方式中最有代表性的就是当前Web API的广泛应用,促进了各个接入端

ios项目中客户端与服务器通信 认证加密怎么做?

问题描述 ios项目中客户端与服务器通信 认证加密怎么做? ios项目中客户端与服务器通信 认证加密怎么做? 主要是还不理解 解决方案 Apple 的 iAP认证,需要参考协议 + 加密 IC 来实现不懂就要看协议,是比较复杂,且只是 E 文版本的文档 解决方案二: iAP是内购吧,与问题不太相关吧..通信中感觉主要做好这几点吧1.HTTPS2.字符串参数.文件等敏感信息传输过程中保持加密状态,至于加密算法,建议使用非对称的RSA

java-如何在项目中配置一个私钥,使每一个客户端访问我的接口都提示下载证书?

问题描述 如何在项目中配置一个私钥,使每一个客户端访问我的接口都提示下载证书? 在做一个接口,如何保证我只在项目中配置一个 私钥, 就可以使每一个访问我接口的用户提示下载证书??? 现在就是用 jdk生成的证书,但是必须客户端和服务端的密钥都有,我就是想怎么做才能在用户访问的时候才提示下载证书?? 解决方案 服务器端做一个检测,或者提供一个下载的页面 解决方案二: 服务器通讯端口做检查,如果不是标准密钥接入,或者没有密钥:跳转到密钥下载地址.

方法-在C#中的客户端编程中,我需要读取项目的一个文件的,该怎么读取?

问题描述 在C#中的客户端编程中,我需要读取项目的一个文件的,该怎么读取? C#的客户端程序有没有和ASP.NET网站程序一样,有一个像Server.MapPath("/Image/a.jpg")这个方法一样获取项目路径? 解决方案 Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory, 你的相对路径); 解决方案二: Application.StartupPath AppDomain.CurrentDomain.BaseD

如何在项目中配置一个私钥,使每一个客户端访问我的接口都提示下载证书

问题描述 在做一个接口,如何保证我只在项目中配置一个私钥,就可以使每一个访问我接口的用户提示下载证书???现在就是用jdk生成的证书,但是必须客户端和服务端的密钥都有,我就是想咋做才能在用户访问的时候才提示下载证书?? 解决方案

详解JavaScript中的客户端消息框架设计原理

  这篇文章主要介绍了详解JavaScript中的客户端消息框架设计原理,包括客户端和服务器端的通信等方面的内容,需要的朋友可以参考下 哇--是个危险的题目,对吗?我们对于什么是本质的理解当然会随着我们对要解决问题的理解而变化.因此我不会说谎--一年前我所理解的本质很不幸并不完整,因为我确信我将要写的已经快伴随我有6个月之久.所以,这篇文章是我在发现JavaScript中成功的运用客户端消息模式的一些关键要点时的一个掠影. 1.) 理解中介者与观察者的区别 大多数人在描述任何事件/消息机制的时候

json json-rpc 如何在项目中便宜引入Ajax框架 (Joyrock开源项目)

 Joyrock简介:      Joyrock是一个基于LGPL协议的开源项目,实现了JSON和JSON-RPC,支持微软ASP.NET框架.它方便我们读取从浏览器流向服务器的JSON对象,也方便在响应流中写入JSON对象.    Jayrock 远程方法要求写在一个ashx中,页面请求这个ashx的时候,在ProcessRequest 中根据Request对象中的参数信息,确定请求的服务器端方法名称和参数,然后进行调用,并返回结果.    博客url:http://www.cnblogs.c

创建一个完整的ASP.NET Web API项目_实用技巧

Visual Studio为我们提供了专门用于创建ASP.NET Web API应用的项目模板,借助于此项目模板提供的向导,我们可以"一键式"创建一个完整的ASP.NET Web API项目.在项目创建过程中,Visual Studio会自动为我们添加必要的程序集引用和配置,甚至会为我们自动生成相关的代码,总之一句话:这种通过向导生成的项目在被创建之后其本身就是一个可执行的应用.一.通过VS2013..NET 4.5.1创建一个Web API项目1.解决方案下面新建项目 2.选择项目W