mcpField
D
DynamoDB-Toolbox

DynamoDB-Toolbox

本地服务
github.com/dynamodb-toolbox数据库2.0k6 天前更新

关于 DynamoDB-Toolbox

DynamoDB-Toolbox 是构建在 DocumentClient 之上的轻量抽象层,基于 Schema 和访问模式简化 DynamoDB 的读写操作。它面向使用 DynamoDB 的 TypeScript 开发者,尤其是无服务器应用和单表设计场景。

主要功能

  1. 01简化复杂的 DynamoDB 请求构建
  2. 02基于 Schema 的数据校验
  3. 03支持默认值、组合、转换和多态等 Schema 语法
  4. 04可与 Zod 和 JSON Schema 互相导入导出
  5. 05无依赖,可在 LLRT 函数中使用
  6. 06支持 Tree-shaking

适用场景

  1. 01在无服务器应用中维护 DynamoDB 数据访问代码
  2. 02在单表设计中查询多种实体
  3. 03为 DynamoDB 数据添加类型安全和校验

MCP 相关

该项目在输入中被列为 server,但 README 未提及 MCP,因此不描述 MCP 相关能力。

配置

本地服务的配置在各客户端中通用,复制后粘贴到客户端的 MCP 配置文件即可。

暂未收录安装方式

我们还没有获取到这个服务的安装包或远程地址,请按项目 README 中的说明安装。

代码仓库

工具

还没有获取到工具列表

本地服务需要在你的电脑上运行后才能读取工具,维护者暂未提供工具列表。

详细介绍

DynamoDB-Toolbox

DynamoDB-Toolbox

README 配图 README 配图 README 配图

快速入门   •   文档   •   赞助   •   DynamoDB-Toolshack

💖 衷心感谢帮助我维护此仓库的赞助者:

Theodo   feathers.dev  lijianan  Raees Iqbal  Lucas Saldanha Ferreira  Syntax   加号


功能

DynamoDB-Toolbox 是 DocumentClient 的轻量级抽象层,让你的 DynamoDB 之旅 ✨轻松愉快✨

🤗 更简单的查询:DynamoDB-Toolbox 帮你处理构建那些复杂 DynamoDB 请求的繁重工作,让代码更清晰、更简洁、更易维护。

📐 数据验证:写入和读取的项目都会根据你的架构进行验证,确保数据的一致性和代码的可靠性。

✨ 丰富的架构语法,支持默认值、组合、转换和多态等各类边缘情况。

🔄 可移植性:架构可从 Zod 和 JSON Schema 导入,也可导出到这两种格式,同时保留类型推断。

🌈 将类型安全发挥到极致:通过即时反馈和流畅的自动补全提升开发效率。

🌴 支持 Tree-shaking:只导入你需要的内容。

☝️ 单表设计:DynamoDB-Toolbox 让在同一张表中查询多个实体变得极其简单,当然,用于多张表也同样得心应手。

🪶 兼容 LLRT:DynamoDB-Toolbox 没有依赖,可用于 LLRT 函数。

查看 👉 官方文档 👈,立即开始!

提示


想让你的代码发挥更大作用?试试 DynamoDB-Toolshack 🙌

DynamoDB-Toolshack 是一款 SaaS,可连接到 DynamoDB-Toolbox,通过支持架构的 UI、表一致性检查和迁移系统,提升你的 DynamoDB 使用体验。

加入 Beta 版,只需点击几下即可开始使用!

为什么使用 DynamoDB-Toolbox?

如果你来到这里,我们认为你已经了解 DynamoDB。

如果还不了解,请查看 AWS 官方文档。

简而言之:DynamoDB 是一款键值型数据库,专为运行高性能应用而设计,可支持任意规模。它会根据当前流量自动扩缩容,无需维护连接,因此成为许多项目(包括但不限于无服务器应用)的首选数据库。

如果你用过官方的 Document Client,就会知道用起来很痛苦。

看看这个直接来自 AWS 文档的 UpdateCommand 示例:

await documentClient.send(
  new UpdateCommand({
    TableName: 'Music',
    Key: {
      // 👇 No type-safety on the Primary Key
      artist: 'Acme Band',
      songTitle: 'Happy Day'
    },
    // 👇 Complex string expressions (+ still no type-safety)
    UpdateExpression: 'SET #Y = :y, #AT = :t',
    // 👇 Attribute names provided separately
    ExpressionAttributeNames: {
      '#AT': 'albumTitle',
      '#Y': 'year'
    },
    // 👇 Attribute values as well
    ExpressionAttributeValues: {
      // 👇 No validation or type-safety to enforce DB schema
      ':t': 'Louder Than Ever',
      ':y': '2015'
    },
    ReturnValues: 'ALL_NEW'
  })
)

这是一个非常简单的示例(更新 Music 项目的两个字段),但已经很复杂了 😰

随着数据变得更复杂,情况只会更加棘手:如果项目有很多属性,其中一些还是嵌套很深或可选的,该怎么办?如果你需要根据项目的值为其建立索引,或处理不同类型的项目呢?多态又该如何处理?

在这些相当常见的情况下,生成这些请求所需的代码会变得非常难以维护。这时,DynamoDB-Toolbox 就能帮上忙 💪

下面快速预览一下使用 DynamoDB-Toolbox 实现上述 UpdateCommand 的方式:

// Validated AND type-safe syntax 🙌
await MusicEntity.build(UpdateItemCommand)
  .item({
    artist: 'Acme Band',
    songTitle: 'Happy Day',
    albumTitle: 'Louder Than Ever',
    year: '2015'
  })
  .options({ returnValues: 'ALL_NEW' })
  .send()

就这样,我们把晦涩难懂的 20 行代码,变成了清晰优雅的 10 行代码 🤩

还不错吧?开始使用吧!

成为赞助者!

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。