老闆請我協助評估 CMS 系統,讓產品部門維護 FAQ 及產品 Knowledge Base,因為後端開發能量有些限、希望能靠友善的 UI 設定,就能快速的創造出後台維護頁面及前台Api,好讓其他前端同仁串接。
我試用了幾套主流幾套 CMS,基於以下理由,首推 strapi 靈活輕巧,適合企業中長期發展,未來也可以移作他用。
使用者 - 界面友善、可以自由調整位置。
管理者 - 資料欄位驗證、權限管理、流程控制。
開發者 - 開源、串接友善,提供 swagger 文件、擴充性( 插件市集 )、提供豐富的接口、本身也是 react 及 node 寫的,對前端開發者相對很友善。
strapi 透過友善的後台 UI 設定,能讓程式產生程式。
npx create-strapi-app@latest my-project --quickstart
cd my-project npm run strapi install documentation npm run build // 裝完一定要按 build 才會跑出按鈕
API 預設是不會傳圖片的欄位,在呼叫 api 的請求參數 populate 參數,額外填寫回傳的圖片欄位
預設 api 存取是需要帶 token,如果你不需要驗證則可以,到 Setting > USERS & PERMISSIONS PLUGIN > Role > 找到你的 Collection > 並給與 find 和 findOne 權限。
.env
HOST=0.0.0.0 PORT=1337 APP_KEYS=p285lmxQN6bZ90Dh870eIg==,twHIadFFnSgVKyGgzcpnIQ==,jgn83CaVHIPPnpSqsZPWGw==,s2lTboydFrhkPRHJp4omQw== API_TOKEN_SALT=9LGnsz1zt4UpaKfCCQxEZQ== ADMIN_JWT_SECRET=l7gG6CTUeK0502ns9FAKkw== JWT_SECRET=mJg/1OqVkOeCiZcxiQfG5w== WEBSITE=http://127.0.0.1:1337/
config/server.js
module.exports = ({ env }) => ({ host: env('HOST', '0.0.0.0'), port: env.int('PORT', 1337), ------ url: env('WEBSITE', 'http://127.0.0.1'), ------ app: { keys: env.array('APP_KEYS'), }, });