現(xiàn)自動(dòng)化)
Central Dogma REST API 完全參考讓配置管理實(shí)現(xiàn)自動(dòng)化【免費(fèi)下載鏈接】centraldogmaHighly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2項(xiàng)目地址: https://gitcode.com/gh_mirrors/ce/centraldogmaCentral Dogma 是一個(gè)基于 Git、ZooKeeper 和 HTTP/2 構(gòu)建的高可用、版本化服務(wù)配置管理倉(cāng)庫(kù)專(zhuān)為存放 JSON、YAML、XML 等配置而設(shè)計(jì)。它提供了完整的Central Dogma REST API讓團(tuán)隊(duì)可以用curl、腳本或任何編程語(yǔ)言輕松讀取配置、提交變更、回滾歷史真正實(shí)現(xiàn)配置管理的自動(dòng)化。本文是一份面向新手和普通用戶(hù)的Central Dogma REST API 完全參考從端點(diǎn)概覽到實(shí)戰(zhàn)示例一次講透。Central Dogma REST API 基礎(chǔ)端點(diǎn)、版本與認(rèn)證所有 REST 接口統(tǒng)一掛在/api/v1前綴下服務(wù)端默認(rèn)監(jiān)聽(tīng)36462端口。核心實(shí)現(xiàn)位于服務(wù)端的 ProjectServiceV1.java、ContentServiceV1.java 等文件中。調(diào)用前你只需記住三個(gè)概念路徑語(yǔ)法采用 Unix 風(fēng)格/projFoo是項(xiàng)目/projFoo/repoA是倉(cāng)庫(kù)/projFoo/repoA/samples/a.json是文件。Revision修訂號(hào)-1表示最新版本1、2等正整數(shù)表示歷史版本幾乎所有讀接口都支持revision參數(shù)。認(rèn)證啟用安全模式后通過(guò)Authorization: Bearer token請(qǐng)求頭攜帶令牌。# 快速自檢列出所有項(xiàng)目 curl http://localhost:36462/api/v1/projects項(xiàng)目管理 API一鍵創(chuàng)建與刪除項(xiàng)目是配置的頂層隔離單元。常用端點(diǎn)如下方法端點(diǎn)用途GET/api/v1/projects列出全部項(xiàng)目POST/api/v1/projects創(chuàng)建項(xiàng)目GET/api/v1/projects/{name}查看單個(gè)項(xiàng)目DELETE/api/v1/projects/{name}刪除項(xiàng)目可恢復(fù)curl -X POST http://localhost:36462/api/v1/projects \ -H Content-Type: application/json \ -d {name: projFoo}前端 apiSlice.ts 中對(duì)項(xiàng)目增刪查的封裝與上述端點(diǎn)一一對(duì)應(yīng)可作為接入?yún)⒖?。倉(cāng)庫(kù)管理 API在項(xiàng)目?jī)?nèi)組織配置倉(cāng)庫(kù)類(lèi)似于 Git 倉(cāng)庫(kù)一個(gè)項(xiàng)目可包含多個(gè)倉(cāng)庫(kù)分別存放不同環(huán)境的配置。方法端點(diǎn)用途GET/api/v1/projects/{proj}/repos列出項(xiàng)目下所有倉(cāng)庫(kù)POST/api/v1/projects/{proj}/repos創(chuàng)建倉(cāng)庫(kù)DELETE/api/v1/projects/{proj}/repos/{repo}刪除倉(cāng)庫(kù)curl -X POST http://localhost:36462/api/v1/projects/projFoo/repos \ -H Content-Type: application/json \ -d {name: repoA}文件內(nèi)容 API讀取、寫(xiě)入與 JSONPath 查詢(xún)這是 Central Dogma REST API 中最高頻的一組接口對(duì)應(yīng)服務(wù)端 ContentServiceV1.java。列出目錄GET /api/v1/projects/{proj}/repos/{repo}/list{/path}讀取文件GET /api/v1/projects/{proj}/repos/{repo}/contents{/path}?revision-1提交更改POST /api/v1/projects/{proj}/repos/{repo}/contents預(yù)覽模板POST /api/v1/projects/{proj}/repos/{repo}/preview讀取文件時(shí)還支持jsonpath參數(shù)直接從 JSON 配置中提取字段無(wú)需下載全文curl http://localhost:36462/api/v1/projects/projFoo/repos/repoA/contents/samples/a.json?jsonpath$.a寫(xiě)入文件必須攜帶commitMessage每次變更都會(huì)生成一條帶版本號(hào)的提交記錄curl -X POST http://localhost:36462/api/v1/projects/projFoo/repos/repoA/contents \ -H Content-Type: application/json \ -d {commitMessage: 更新數(shù)據(jù)庫(kù)連接串, changes: [{path: /samples/a.json, type: UPSERT, content: {\a\:\b\}}]}提交歷史與回滾 API讓配置變更可追溯配置管理自動(dòng)化的核心價(jià)值在于可審計(jì)、可回滾。相關(guān)端點(diǎn)包括方法端點(diǎn)用途GET/api/v1/projects/{proj}/repos/{repo}/commits查看提交歷史GET/api/v1/projects/{proj}/repos/{repo}/compare對(duì)比兩個(gè)版本差異POST/api/v1/projects/{proj}/repos/{repo}/revert回滾到指定版本# 將倉(cāng)庫(kù)回滾到 revision 3 curl -X POST http://localhost:36462/api/v1/projects/projFoo/repos/repoA/revert \ -H Content-Type: application/json \ -d {revision: 3, commitMessage: 回滾配置}結(jié)合watch監(jiān)聽(tīng)機(jī)制服務(wù)端還可以在配置變更時(shí)實(shí)時(shí)通知客戶(hù)端實(shí)現(xiàn)配置熱更新無(wú)需重啟服務(wù)。模板與變量 API動(dòng)態(tài)生成環(huán)境配置Central Dogma 支持${vars.varName}模板語(yǔ)法可將環(huán)境差異抽取為變量文件用同一份模板渲染出 dev、prod 等多套配置。官方文檔 templates-variables.rst 中有詳細(xì)說(shuō)明Web 管理界面也提供了可視化編輯。權(quán)限與元數(shù)據(jù) API精細(xì)的訪(fǎng)問(wèn)控制多團(tuán)隊(duì)協(xié)作時(shí)權(quán)限管理必不可少。/api/v1/metadata/...系列接口由 MetadataApiService.java 提供服務(wù)成員管理POST /api/v1/metadata/{proj}/members倉(cāng)庫(kù)角色POST /api/v1/metadata/{proj}/repos/{repo}/roles/users應(yīng)用身份POST /api/v1/metadata/{proj}/appIdentities支持項(xiàng)目級(jí)與倉(cāng)庫(kù)級(jí)的細(xì)粒度角色Owner、Write、Read并能管理用戶(hù)、應(yīng)用身份與令牌三類(lèi)主體兼顧人工與自動(dòng)化場(chǎng)景。鏡像管理 API從外部 Git 同步配置如果你的團(tuán)隊(duì)習(xí)慣在 GitLab/GitHub 上通過(guò) Pull Request 評(píng)審配置Central Dogma 的鏡像Mirror功能可以把外部倉(cāng)庫(kù)自動(dòng)同步進(jìn)來(lái)。相關(guān)接口位于 MirroringServiceV1.java方法端點(diǎn)用途GET/api/v1/projects/{proj}/repos/{repo}/mirrors查看鏡像配置POST/api/v1/projects/{proj}/repos/{repo}/mirrors創(chuàng)建鏡像POST/api/v1/projects/{proj}/repos/{repo}/mirrors/{id}/run手動(dòng)觸發(fā)一次同步鏡像成功后配置即具備高可用、可查詢(xún)、可監(jiān)聽(tīng)、可鑒權(quán)四大能力且全程通過(guò) REST API 驅(qū)動(dòng)天然適合接入 CI/CD 流水線(xiàn)。實(shí)戰(zhàn)用 curl 實(shí)現(xiàn)配置自動(dòng)化閉環(huán)把上面的接口串起來(lái)只需幾條命令就能完成更新配置 → 驗(yàn)證 → 監(jiān)聽(tīng)變更的自動(dòng)化閉環(huán)# 1. 寫(xiě)入新配置 curl -X POST .../api/v1/projects/projFoo/repos/repoA/contents \ -d {commitMessage: 調(diào)整限流閾值, changes: [{path: /config/rate-limit.json, type: UPSERT, content: {\qps\: 500}}]} # 2. 讀取最新配置并校驗(yàn) curl .../api/v1/projects/projFoo/repos/repoA/contents/config/rate-limit.json # 3. 發(fā)現(xiàn)異常立即回滾 curl -X POST .../api/v1/projects/projFoo/repos/repoA/revert \ -d {revision: -2, commitMessage: 回滾限流配置}如果想要本地復(fù)現(xiàn)與二次開(kāi)發(fā)可克隆倉(cāng)庫(kù)獲取完整源碼https://gitcode.com/gh_mirrors/ce/centraldogma。命令行工具dogma的用法ls、cat、put、watch等可參考 client-cli.rst它與 REST API 的能力一一對(duì)應(yīng)非常適合快速聯(lián)調(diào)??偨Y(jié)Central Dogma REST API 覆蓋了配置管理全生命周期項(xiàng)目與倉(cāng)庫(kù)的組織、文件讀寫(xiě)與查詢(xún)、歷史審計(jì)與回滾、模板渲染、權(quán)限控制、鏡像同步。掌握這份參考你就能用腳本把分散在各處的配置文件統(tǒng)一收攏到高可用的版本化倉(cāng)庫(kù)中讓配置變更變得可評(píng)審、可追蹤、可回滾——這就是配置管理自動(dòng)化的正確打開(kāi)方式?!久赓M(fèi)下載鏈接】centraldogmaHighly-available version-controlled service configuration repository based on Git, ZooKeeper and HTTP/2項(xiàng)目地址: https://gitcode.com/gh_mirrors/ce/centraldogma創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考