開源的api文檔管理系統

在項目中,須要協同開發,因此會寫許多API文檔給其餘同事,之前都是寫一個簡單的TXT文本或Word文檔,口口相傳,這種方式比較老土了,因此,須要有個api管理系統專門來管理這些api,從網上找了許多比較好的開源文檔管理系統,能夠應用到項目中。

一、國外的話Swagger
swagger-uiphp

二、國內的Showdoc
國內開源的很是好用的一款API文檔管理系統,安裝也很是方便,只需將源代碼放到項目目錄下自動安裝運行便可,不要要注意PHP版本必須大於5.3.html

clipboard.png

三、界面簡潔功能強大的EOAPInode

四、阿里的RAP
Web API management, free and open sourced, mock data generator, auto test, made by Alibaba, using by 1000+ corporations! Web接口管理工具,開源免費,接口自動化,MOCK數據自動生成,自動化測試,企業級管理。阿里媽媽MUX團隊出品!阿里巴巴都在用!1000+公司的選擇!一直被抄襲,從未被超越 :3 http://rapapi.netlaravel

五、postMangit

六、docute: 無需編譯的文檔撰寫工具
像 gitbook 之類的工具須要編譯後發佈,而 docute 讓你直接寫 markdown 文件做爲文檔來顯示而不須要編譯成 html 這一步,你的文檔目錄裏只須要一個首頁 index.html 和你的配置文件 config.js。angularjs

docute 會直接渲染這些 markdown 文件爲一個單頁應用。配合 github pages 發佈到 ./docs 目錄效果更佳,固然發佈到任何地方均可以。github

docute 的文檔: https://docute.js.org/#/zh-Hans/ (基於 Vue)web

Github 項目:https://github.com/egoist/docutespring

七、SmartWiki 接口文檔在線管理系統npm

clipboard.png

clipboard.png

clipboard.png

clipboard.png

八、SosoApi
SosoApi,編輯Swagger UI的神器

clipboard.png

九、CrapApi開源接口管理系統演示地址

CrapApi:一個由angularjs+bootstrap+springMVC搭建的高性能的免費開源的API接口、文檔管理系統(應用接口管理系統)

GitHub源碼地址:https://github.com/EhsanTang/...
碼雲源碼地址:http://git.oschina.net/CrapAp...

主要功能:api接口管理、數據字典管理、接口數據模擬、接口文檔管理(支持markdown、kindereditor等編輯器)、支持本地部署或在線使用、支持經過建表語句導入數據字典...

其餘功能:項目管理、用戶管理、模塊管理、接口管理、接口版本管理、接口拷貝、接口文檔pdf下載、接口mock、模塊加密訪問、
接口在線調試、數據字典管理、數據字典加密訪問多管理員、多權限、多角色管理、自定義菜單、自定義網站樣式、文檔留言、
錯誤碼管理、接口排序、DOC、PDF、TEXT、EXCEL等資源管理、支持版本號控制、文檔內容檢索、操做日誌記錄、
根據日誌恢復數據、markdown編輯器、kindeditor編輯器、angularjs編輯器、Lucene搜索、項目成員管理...

站點使用地址:http://api2.crap.cn
效果圖:

clipboard.png

clipboard.png

十、 TeaKKi
這個WIKI用來寫文檔也不錯~
TeaKKi == team wiki, https://teakki.com 超越了wiki, 在wiki基礎上支持團隊知識協做

clipboard.png

十一、Web API文檔生成工具apidoc

這個須要在編輯後生成靜態的HTML頁面,而後上傳到服務器。

工具名稱:apiDoc
Git地址:https://github.com/apidoc/apidoc
項目地址:http://apidocjs.com/
樣例項目:http://apidocjs.com/example_b...
apoDoc是從源碼的註釋中生成RestFul api 文檔,樣子仍是蠻漂亮的……

使用apidoc 生成Restful web Api文檔
NodeJS、NPM安裝配置步驟(windows版本)

Apidoc安裝與使用

具體步驟:

Windows安裝方法:
一、官網nodejs.org下載Node

二、安裝

三、將npm 替換爲淘寶鏡像cnpm

C:\Users\Administrator>npm install -g cnpm --registry=https://registry.npm.taobao.org

四、使用cnpm安裝apidoc

C:\Users\Administrator>cnpm install apidoc -g

安裝的地址:

[apidoc@0.17.5] link C:\Users\Administrator\AppData\Roaming\npm\apidoc@ -> C:\Users\Administrator\AppData\Roaming\npm\node_modules\apidoc\bin\apidoc

C:\Users\Administrator\AppData\Roaming\npm\node_modules\apidoc

apidoc 監視文件變更自動生成工具

監控api_doc.json文件改變,而後自動生成HTML

watch.js文件,而後node 執行該文件

/**
 * watch.js
 * Created by lincoln on 16-1-6.
 */
var gaze = require('gaze');
var exec = require('child_process').exec;
var fs = require('fs')


function init(){
    fs.mkdirSync('./api');
    fs.mkdirSync('./doc');
    createConfigureFile();
    beginWatch();
}
/**
{
  "name": "測試",
  "version": "0.0.1",
  "description": "API文檔測試",
  "title": "API文檔測試",
  "url" : "http://121.41.44.218",
  "sampleUrl" : "http://121.41.44.218",
  "template":{
    "forceLanguage":"zh-cn"
  }
}
*/

function createConfigureFile(){
    var configure = {
      "name": "測試",
      "version": "0.0.1",
      "description": "API文檔測試",
      "title": "API文檔測試",
      "url" : "http://xxxxxx",
      "sampleUrl" : "http://xxx",
      "template":{
        "forceLanguage":"zh-cn"
      }
    }
    fs.writeFileSync('./api/apidoc.json',JSON.stringify(configure));
}

function beginWatch(){
    gaze('./api/*.*',function(error,watcher){
     this.on('all', function(event, filepath) {
        console.log(filepath + ' was ' + event);
        runGeneartion();
      })
    });
}

function runGeneartion(){
    var com = exec('apidoc -i ./api -o ./doc ')
    com.stdout.on('data', function (data) {
        console.log("生成Api->"+data);
    });

    com.stderr.on('data', function (data) {
        console.log('生成錯誤啦->' + data);
    });
}

if(fs.existsSync('./api') && fs.existsSync('./doc')){
    beginWatch();
}else{
    init();
}

安裝gaze包,而後執行watch.js文件:

➜  apidoc cnpm install gaze
[gaze@*] installed at node_modules/.1.1.2@gaze (14 packages, use 2s, speed 54.93kB/s, json 85.75kB, tarball 0B)
All packages installed (14 packages installed from npm registry, use 2s, speed 54.62kB/s, json 17(85.75kB), tarball 0B)
➜  apidoc node watch.js
/WEB/apidoc/api/apidoc.json was changed
生成Api->info: Done.

api參數:

Usage: C:\Program Files\nodejs\node.exe apidoc [options]

Options:
   -f, --file-filters      RegEx-Filter to select files that should be parsed (multiple -f can be used)
   -e, --exclude-filters   RegEx-Filter to select files / dirs that should not be parsed (many -e can b
   -i, --input             Input / source dirname.  [./]
   -o, --output            Output dirname.  [./doc/]
   -t, --template          Use template for output files.  [C:\Users\Administrator\AppData\Roaming\npm\
   -c, --config            Path to directory containing config file (apidoc.json)  [./]
   -p, --private           Include private APIs in output.  [false]
   -v, --verbose           Verbose debug output.  [false]
   -h, --help              Show this help information.
   --debug                 Show debug messages.  [false]
   --color                 Turn off log color.  [true]
   --parse                 Parse only the files and return the data, no file creation.  [false]
   --parse-filters         Optional user defined filters. Format name=filename
   --parse-languages       Optional user defined languages. Format name=filename
   --parse-parsers         Optional user defined parsers. Format name=filename
   --parse-workers         Optional user defined workers. Format name=filename
   --silent                Turn all output off.  [false]
   --simulate              Execute but not write any file.  [false]
   --markdown              Turn off default markdown parser or set a file to a custom parser.  [true]
   --line-ending           Turn off autodetect line-ending. Allowed values: LF, CR, CRLF.
   --encoding              Set the encoding of the source code. [utf8].  [utf8]

執行生成文檔命令

D:\code\api_doc>apidoc -i example/ -o doc/
info: Done.

D:\POCO\api_doc>

十二、PHP_DOC 實時生成 API 文檔
https://segmentfault.com/a/11...

clipboard.png

1三、Outline
GitHub地址:https://github.com/authing/ou...

截圖:

clipboard.png

這個開源的文檔界面看起來還挺不錯。

1四、documize/community
GitHub地址:https://github.com/documize/c...

1五、線上文檔
①、阿里的 語雀
②、騰訊的 樂享
③、confluence
④、Mindoc

相關文章:
《移動開發接口及文檔編寫規範》V1.0

相關文章
相關標籤/搜索