Prisma Management API 入門
總覽
本指南將引導您建立一個基礎的 TypeScript 專案,該專案使用 Prisma Postgres Management API 來建立一個新的 Prisma Console 專案,並包含一個 Prisma Postgres 資料庫,最後印出所有的連線詳細資訊。
您將透過服務權杖 (Service Token) 進行驗證、設定環境,並執行腳本來與 API 進行互動。
API 參考資料也可透過 OpenAPI 3.1 規範取得。
先決條件
- 已安裝 Node.js 和
npm - A帳號
1. 在 Prisma Console 中建立服務權杖
首先,您需要建立一個服務權杖,才能存取 Management API。
- 開啟
- 前往您工作區的 Settings(設定)頁面,並選擇 Service Tokens(服務權杖)。
- 點擊 New Service Token(新增服務權杖)。
- 複製並妥善保存產生的服務權杖,您將在步驟 2.2 中使用它。
2. 設定您的專案目錄
2.1. 建立基礎 TypeScript 專案
開啟終端機並執行以下指令
mkdir management-api-demo
cd management-api-demo
接下來,初始化 npm 並安裝使用 TypeScript 所需的依賴套件
npm init -y
npm install tsx typescript @types/node --save-dev
touch index.ts
現在您擁有了一個 index.ts 檔案,可以使用 npx tsx index.ts 來執行它。它目前還是空的,您將在步驟 3 開始編寫程式碼。
2.2. 設定服務權杖環境變數
建立您的 .env 檔案
touch .env
接下來,安裝 dotenv 套件,用於從 .env 檔案載入環境變數。
npm install dotenv
最後,將您的服務權杖(來自步驟 1)加入到 .env 中
PRISMA_SERVICE_TOKEN="ey..."
2.3. 安裝用於 HTTP 請求的 axios 套件
您將使用 axios 作為與 Management API 互動的 HTTP 客戶端。請執行以下指令進行安裝:
npm install axios
準備就緒,讓我們編寫一些程式碼來建立專案並部署 Prisma Postgres 資料庫吧!
3. 透過程式碼建立包含資料庫的新專案
將以下程式碼貼入 index.ts
import axios from 'axios';
import dotenv from 'dotenv';
// Load environment variables
dotenv.config();
const API_URL = 'https://api.prisma.io/v1';
const SERVICE_TOKEN = process.env.PRISMA_SERVICE_TOKEN;
if (!SERVICE_TOKEN) {
throw new Error('PRISMA_SERVICE_TOKEN is not set in the environment');
}
// Set HTTP headers to be used in this script
const headers = {
Authorization: `Bearer ${SERVICE_TOKEN}`,
'Content-Type': 'application/json',
};
async function main() {
// Create a new project in your Prisma Console workspace
const projectName = `demo-project-${Date.now()}`;
const region = 'us-east-1';
const createProjectRes = await axios.post(
`${API_URL}/projects`,
{ name: projectName, region },
{ headers }
);
const project = createProjectRes.data;
console.log('Created project: \n', project);
// Log the database details
const apiKeys = project.databases[0].apiKeys || [];
for (const key of apiKeys) {
console.log(`\nDatabase details`);
console.log(`- ID: ${key.id}`);
console.log(`- Created at: ${key.createdAt}`);
console.log(`- API key: ${key.apiKey}`);
console.log(`- Prisma Postgres connection string: ${key.connectionString}`);
if (key.ppgDirectConnection) {
console.log(`- Direct TCP connection: ${key.ppgDirectConnection.host}`);
console.log(` - Host: ${key.ppgDirectConnection.host}`);
console.log(` - Username: ${key.ppgDirectConnection.user}`);
console.log(` - Password: ${key.ppgDirectConnection.pass}`);
}
}
}
main().catch((e) => {
console.error(e.response?.data || e);
process.exit(1);
});
您可以使用以下指令執行腳本
npx tsx index.ts
Created project:
{
createdAt: '2025-07-09T11:52:15.341Z',
id: 'cmcvwftgs00v5zq0vh3kp7pms',
name: 'demo-project-1752061932800',
databases: [
{
createdAt: '2025-07-09T11:52:15.341Z',
id: 'cmcvwftgs00v1zq0v0qrtrg8t',
name: 'demo-project-1752061932800',
connectionString: 'prisma+postgres://accelerate.prisma-data.net/?api_key=<api_key>',
region: 'us-east-1',
status: 'ready',
apiKeys: [Array],
isDefault: true
}
]
}
Database details
- ID: cmcvwftgs00v2zq0vj3v0104j
- Created at: 2025-07-09T11:52:15.341Z
- API key: ey...<actual_api_key>
- Prisma Postgres connection string: prisma+postgres://accelerate.prisma-data.net/?api_key=ey...<actual_api_key>
- Direct TCP connection: db.prisma.io:5432
- Host: db.prisma.io:5432
- Username: <username>
- Password: <password>
指令的輸出結果應該與上述結果相似。
總結
現在,您已經建立了一個與 Prisma Management API 互動的 TypeScript 專案,能夠建立新專案與資料庫,並印出所有連線字串。您可以擴展此腳本,利用 Management API 來管理更多資源或自動化其他任務。
與 Prisma 保持聯繫
透過以下方式與我們聯繫,繼續您的 Prisma 旅程: 我們的活躍社群。保持資訊靈通、參與其中,並與其他開發者合作
- 在 X 上關注我們 以獲取公告、現場活動和實用技巧。
- 加入我們的 Discord 提出問題、與社群對話,並透過對話獲得積極支援。
- 在 YouTube 上訂閱 查看教學、演示和直播。
- 在 GitHub 上交流 透過為存放庫加星標、報告問題或為 issue 做出貢獻。