跳至主要內容

Prisma Management API 入門

15 分鐘

總覽

本指南將引導您建立一個基礎的 TypeScript 專案,該專案使用 Prisma Postgres Management API 來建立一個新的 Prisma Console 專案,並包含一個 Prisma Postgres 資料庫,最後印出所有的連線詳細資訊。

您將透過服務權杖 (Service Token) 進行驗證、設定環境,並執行腳本來與 API 進行互動。

OpenApi

API 參考資料也可透過 OpenAPI 3.1 規範取得。

先決條件

  • 已安裝 Node.js 和 npm
  • A帳號

1. 在 Prisma Console 中建立服務權杖

首先,您需要建立一個服務權杖,才能存取 Management API。

  1. 開啟
  2. 前往您工作區的 Settings(設定)頁面,並選擇 Service Tokens(服務權杖)。
  3. 點擊 New Service Token(新增服務權杖)。
  4. 複製並妥善保存產生的服務權杖,您將在步驟 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
顯示CLI結果
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 旅程: 我們的活躍社群。保持資訊靈通、參與其中,並與其他開發者合作

我們衷心感謝您的參與,並期待您成為我們社群的一份子!

© . This site is unofficial and not affiliated with Prisma Data, Inc.