在國内dubbo成為很多網際網路公司高并發分布式場景下rpc架構的首選,dubbo從開源至今經曆過蠻多的過程,從開源到中間的停止維護,經過三年的沉寂,2017年9月,阿裡巴巴宣布重新開機dubbo項目。到2018年2月,阿裡将dubbo捐獻給Apache基金會,随後dubbo經過孵化後順利成為apache的頂級項目。
當然本文的重點不是介紹dubbo的使用,而是介紹如何利用smart-doc工具來生成dubbo的rpc内部接口文檔。smart-doc因為其基于注釋和java接口定義自動推導的理念,開源以來受到國内很多開發者的喜愛。在開源之初,smart-doc僅僅支援restful api文檔的生成,但是在發展的過程中,不斷有開發者詢問smart-doc能否支援dubbo rpc接口文檔的生成。經過不斷努力,在smart-doc 1.8.7版本中我們增加了dubbo rpc接口的支援,下面來看看真正的操作。
smart-doc本着使用簡單的原則開發了maven插件和gradle,通過插件來降低smart-doc的內建難度和去除依賴侵入性。您可以根據自己使用的依賴建構管理工具來選擇相關的插件,下面以使用smart-doc-maven-plugin插件內建smart-doc生成dubbo為例。當然內建smart-doc來生成dubbo rpc接口文檔你有兩種可選方式:
使用smart-doc掃描dubbo api子產品
使用smart-doc掃描dubbo provider子產品
下面來看下內建方式。
在你的dubbo api或者或者是dubbo provider子產品中添加smart-doc-maven-plugin。當然你隻需要選中一種方式即可
在你的dubbo api或者或者是dubbo provider子產品reources中添加smart-doc.json配置檔案
rpcConsumerConfig:
如果下你想讓dubbo consumer內建更加快速,你可以将內建配置示例consumer-example.conf中,Smart-doc會将該示例直接輸出到文檔中。
上面提到了smart-doc支援單獨去掃描dubbo api或者dubbo provider。在掃描原理是主要通過識别@dubbo注釋tag(idea可以支援添加自定義注釋tag提示可以參考smart-doc wiki文檔介紹)或dubbo的 @service注解。
dubbo api通常都是很簡潔的dubbo接口定義,如果你需要讓smart-doc掃描到dubbo接口,那麼需要加上@dubbo注釋tag。示例如下:
如果想通過dubbo provider生成rpc接口文檔的情況,你不需要加任何的其他注釋tag,smart-doc自動掃描@service注解完成。
直接通過maven指令運作插件的文檔生成指令或者在idea中直接單擊插件的可視化指令即可。

# dubbo-api文檔生成效果圖
Add dependency
URI: dubbo://localhost:20880/com.iflytek.demo.dubbo.api.interfaces.UserService
Service: com.iflytek.demo.dubbo.api.interfaces.UserService
Protocol: dubbo
Author: yu 2019/4/22., zhangsan 2019/4/22.
Version: 1.0.0
Definition:ListlistOfUser()
Description: 查詢所有使用者
Response-fields:
Definition:User getById(String userId)
Description: 根據使用者id查詢
Invoke-parameters:
smart-doc對于dubbo rpc文檔生成的支援比較晚,當然目前市面也沒有比其他比較好的工具以及模闆參考。dubbo rpc文檔的這塊還需要更多的使用者提出issue和改進意見。
來源 | https://urlify.cn/jiaQni