[ PROMPT_NODE_23614 ]
neon-typescript-sdk
[ SKILL_DOCUMENTATION ]
# Neon TypeScript SDK
`@neondatabase/api-client` TypeScript SDK 是 Neon REST API 的类型化封装。它提供了管理所有 Neon 资源的方法,包括项目、分支、端点、角色和数据库。
有关核心概念(组织、项目、分支、端点等),请参阅 `what-is-neon.md`。
## 文档
bash
curl -H "Accept: text/markdown" https://neon.tech/docs/reference/typescript-sdk
## 安装
bash
npm install @neondatabase/api-client
## 身份验证
typescript
import { createApiClient } from "@neondatabase/api-client";
const apiKey = process.env.NEON_API_KEY;
if (!apiKey) {
throw new Error("NEON_API_KEY 环境变量未设置。");
}
const apiClient = createApiClient({ apiKey });
## 项目
### 列出项目
typescript
const response = await apiClient.listProjects({});
console.log("Projects:", response.data.projects);
### 创建项目
typescript
const response = await apiClient.createProject({
project: { name: "my-project", pg_version: 17, region_id: "aws-us-east-2" },
});
console.log(
"Connection URI:",
response.data.connection_uris[0]?.connection_uri,
);
### 获取项目
typescript
const response = await apiClient.getProject("your-project-id");
### 更新项目
typescript
await apiClient.updateProject("your-project-id", {
project: { name: "new-name" },
});
### 删除项目
typescript
await apiClient.deleteProject("project-id");
### 获取连接 URI
typescript
const response = await apiClient.getConnectionUri({
projectId: "your-project-id",
database_name: "neondb",
role_name: "neondb_owner",
pooled: true,
});
console.log("URI:", response.data.uri);
## 分支
### 创建分支
typescript
import { EndpointType } from "@neondatabase/api-client";
const response = await apiClient.createProjectBranch("your-project-id", {
branch: { name: "feature-branch" },
endpoints: [{ type: EndpointType.ReadWrite, autoscaling_limit_max_cu: 1 }],
});
### 列出分支
typescript
const response = await apiClient.listProjectBranches({
projectId: "your-project-id",
});
### 获取分支
typescript
const response = await apiClient.getProjectBranch("your-project-id", "br-xxx");
### 更新分支
typescript
await apiClient.updateProjectBranch("your-project-id", "br-xxx", {
branch: { name: "updated-name" },
});
### 删除分支
typescript
await apiClient.deleteProjectBranch(