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(轉載)
相關文章
- Zookeeper 客戶端 API客戶端API
- zookeeper的Java客戶端APIJava客戶端API
- ETH官方客戶端Geth的使用(一)客戶端
- Redis C客戶端APIRedis客戶端API
- Swift編寫自己的API客戶端SwiftAPI客戶端
- 物理DataGuard客戶端無縫切換--客戶端TAF 配置客戶端
- 中斷客戶端客戶端
- 專案分享九:客戶端的異常處理客戶端
- 在網頁如何呼叫客戶端的可執行檔案網頁客戶端
- YouTube Vanced: 替代YouTube官方Android客戶端Android客戶端
- zookeeper Java客戶端API的使用方法Java客戶端API
- Android客戶端專案元件化實踐Android客戶端元件化
- React Native 專案(One 【一個】客戶端)React Native客戶端
- 專案中如何更好的控制客戶需求(轉)
- Winform客戶端引用WCF客戶端後,部分類無法正常使用ORM客戶端
- 客戶端專案管理的挑戰及解決方法客戶端專案管理
- 建立細分客戶的無監督學習專案
- 專案管理中如何更好的控制客戶的需求?專案管理
- 無密碼驗證:客戶端密碼客戶端
- 【WEB API專案實戰乾貨系列】- API訪問客戶端(WebApiClient適用於MVC/WebForms/WinForm)(四)WebAPI客戶端clientMVCORM
- 【DATAGUARD】物理dg配置客戶端無縫切換 (八.3)--客戶端TAF 配置客戶端
- Java 專案中使用 Resilience4j 實現客戶端 API 呼叫的限速/節流機制Java客戶端API
- Kubernetes官方java客戶端之七:patch操作Java客戶端
- Kubernetes官方java客戶端之八:fluent styleJava客戶端
- Kubernetes官方java客戶端之一:準備Java客戶端
- GitHub Windows客戶端無法登入GithubWindows客戶端
- 專案分享七:客戶端防止表單重複提交客戶端
- Spring專案如何優雅的生成介面文件與客戶端Spring客戶端
- 需求管理之專案中如何更好的控制客戶需求
- Jenkins 常用 REST API介紹(Java 客戶端)JenkinsRESTAPIJava客戶端
- kubernetes 客戶端KubeClient使用及常用api客戶端clientAPI
- Kubernetes官方java客戶端之五:proto基本操作Java客戶端
- Kubernetes官方java客戶端之六:OpenAPI基本操作Java客戶端API
- Kubernetes官方java客戶端之三:外部應用Java客戶端
- [BI專案記]-搭建程式碼管理環境之客戶端客戶端
- 配置郵件客戶端(無SSL/TLS加密)客戶端TLS加密
- 生成Webservice客戶端的4中方法Web客戶端
- wsus客戶端安裝時的許可權問題客戶端