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(转载)

目录
相关文章
|
5天前
|
人工智能 Java API
ai-api-union项目,适配各AI厂商api
本项目旨在实现兼容各大模型厂商API的流式对话和同步对话接口,现已支持智谱、豆包、通义、通义版DeepSeek。项目地址:[https://gitee.com/alpbeta/ai-api-union](https://gitee.com/alpbeta/ai-api-union)。通过`ChatController`类暴露两个接口,入参为`ChatRequest`,包含会话ID、大模型标识符和聊天消息列表。流式对话返回`Flux<String>`,同步调用返回`String`
67 2
|
25天前
|
JSON 前端开发 API
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
58 5
以项目登录接口为例-大前端之开发postman请求接口带token的请求测试-前端开发必学之一-如果要学会联调接口而不是纯写静态前端页面-这个是必学-本文以优雅草蜻蜓Q系统API为实践来演示我们如何带token请求接口-优雅草卓伊凡
|
1月前
|
自然语言处理 API 开发者
DeepSeek-Free-API:DeepSeekV3免费的api接口,需要使用api方式的同学可以参考一下这个项目,可以收藏起来试一下
嗨,大家好,我是小华同学。今天为大家介绍一个开源项目——DeepSeek V3 Free 服务。该项目基于 DeepSeek-V3 R1 大模型,提供免费、高性能的 API,支持高速流式输出、多轮对话、联网搜索和深度思考等功能。适用于智能客服、内容创作、教育辅助等场景。部署方式灵活,支持 Docker、Docker-compose、Render、Vercel 和原生部署。欢迎关注我们,获取更多优质开源项目和高效工作学习方法。
533 15
|
5月前
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
在Web开发领域,AJAX与Fetch API是提升交互体验的关键技术。AJAX(Asynchronous JavaScript and XML)作为异步通信的先驱,通过XMLHttpRequest对象实现了局部页面更新,提升了应用流畅度。Fetch API则以更现代、简洁的方式处理HTTP请求,基于Promises提供了丰富的功能。当与Python Web框架(如Django、Flask)结合时,这两者能显著增强应用的响应速度和用户体验,使项目更加高效、高大上。
81 2
|
5月前
|
前端开发 JavaScript API
告别繁琐!AJAX与Fetch API,让你的前后端沟通畅通无阻,项目效率飙升!
在Web开发中,前后端的顺畅沟通至关重要。传统方法常需频繁刷新页面,影响体验与效率。AJAX和Fetch API的出现简化了这一过程。AJAX利用XMLHttpRequest实现局部页面更新,提升用户体验;Fetch API则以更简洁的语法和强大的功能,进一步优化异步请求处理。两者均能显著提高开发效率,简化代码结构,让项目迭代更快速。拥抱这些技术,让Web开发之路更加顺畅。
59 0
|
6月前
|
负载均衡 API 数据安全/隐私保护
Zookeeper的客户端-原生的API
Zookeeper的客户端-原生的API
|
7月前
|
API C# 开发框架
WPF与Web服务集成大揭秘:手把手教你调用RESTful API,客户端与服务器端优劣对比全解析!
【8月更文挑战第31天】在现代软件开发中,WPF 和 Web 服务各具特色。WPF 以其出色的界面展示能力受到欢迎,而 Web 服务则凭借跨平台和易维护性在互联网应用中占有一席之地。本文探讨了 WPF 如何通过 HttpClient 类调用 RESTful API,并展示了基于 ASP.NET Core 的 Web 服务如何实现同样的功能。通过对比分析,揭示了两者各自的优缺点:WPF 客户端直接处理数据,减轻服务器负担,但需处理网络异常;Web 服务则能利用服务器端功能如缓存和权限验证,但可能增加服务器负载。希望本文能帮助开发者根据具体需求选择合适的技术方案。
348 0
|
7月前
|
API
【Azure 应用服务】在App Service中调用外部服务API时需要携带客户端证书,而多次调用的情况下会出现WindowsCryptographicException Keyset does not exist异常
【Azure 应用服务】在App Service中调用外部服务API时需要携带客户端证书,而多次调用的情况下会出现WindowsCryptographicException Keyset does not exist异常
|
7月前
|
安全 API 网络安全
【Azure API 管理】APIM如何配置客户端证书的CRL检测策略
【Azure API 管理】APIM如何配置客户端证书的CRL检测策略
|
7月前
|
存储 安全 API
【Azure API 管理】在APIM中使用客户端证书验证API的请求,但是一直提示错误"No client certificate received."
【Azure API 管理】在APIM中使用客户端证书验证API的请求,但是一直提示错误"No client certificate received."

热门文章

最新文章