Skip to content

vanling1111/amazon-sp-api-go-sdk

Repository files navigation

Amazon SP-API Go SDK

Go Version License Latest Release Go Report Card

APIs Methods Iterators Tests Coverage GitHub Stars pkg.go.dev

生产级 Amazon Selling Partner API Go SDK

填补官方 SDK 空白,提供 Go 语言的完整 SP-API 实现。基于 Amazon SP-API 官方文档 和 Go 最佳实践开发。

当前版本: v1.3.0 | Go 要求: 1.25+ | 状态: ✅ 生产就绪

✨ 核心特性

  • 🎯 完整 API 支持 - 57 个 API 版本,314 个操作方法
  • 🔐 完整的 LWA 认证 - 支持 Regular 和 Grantless 操作
  • 🔄 智能令牌缓存 - 自动刷新和提前过期处理
  • 🚦 速率限制 - 内置 Token Bucket 算法,支持动态更新
  • 🔒 RDT 支持 - 处理受限数据访问
  • 🔁 Go 1.25 迭代器 - 所有 27 个分页 API 支持自动分页迭代
  • 🔓 自动解密 - Reports API 自动下载和解密加密报告
  • 🌐 HTTP 中间件 - 可扩展的请求/响应处理
  • ♻️ 自动重试 - 智能错误检测和重试逻辑
  • 🤖 自动监控 - 每日自动检测官方 API 变更,确保 SDK 始终同步最新规范
  • 🧪 高测试覆盖率 - 154+ 测试用例,所有核心模块已测试
  • 📖 完整文档 - 中文注释和详细示例
  • 🚀 生产就绪 - 所有代码已编译验证和测试

🎯 设计原则

  1. 📚 基于官方规范 - 直接从 Amazon 官方 OpenAPI 规范自动生成代码
  2. 文档驱动 - 所有实现严格遵循官方 SP-API 文档
  3. 🐹 Go 惯用法 - 充分利用 Go 语言特性和社区最佳实践
  4. 🔒 类型安全 - 完整的类型定义和编译时检查
  5. 🧪 高质量 - 完整的测试覆盖和错误处理
  6. Go 1.25 - 使用最新 Go 特性(迭代器、性能优化)

🌟 最新特性

v1.3.0 - 云原生可观测性 (2025-10-03)

  • 📊 OpenTelemetry - 分布式追踪,兼容 Jaeger/Zipkin
  • 📈 Prometheus - 标准指标导出,Grafana 就绪
  • 🔍 完整可观测性 - 日志 + 追踪 + 指标

v1.2.0 - 企业级可靠性

  • 🪵 结构化日志 - Zap 集成
  • 🔌 熔断器 - Circuit Breaker 防止级联失败
  • JSON 优化 - 性能提升 3-5 倍
  • 📦 大文件传输 - 流式上传/下载

v1.1.0 - Go 1.25 增强

  • 🔁 自动分页迭代器 - 27 个 API 支持,代码减少 70%
  • 🔓 自动报告解密 - AES-256-CBC 一键解密
  • 🚀 生产级示例 - SQS 订单同步等

📖 详细说明: 完整功能清单 | 更新日志

📚 文档

类型 文档 说明
📘 API 参考 pkg.go.dev 完整 API 文档
📘 API 参考 本地查看 GoDoc 使用指南
🚀 快速入门 示例代码 10+ 可运行示例
📖 功能指南 完整功能清单 38 项功能详解
📖 功能指南 分页迭代器 Go 1.25 迭代器
📖 功能指南 报告解密 AES-256 解密
📖 功能指南 Grantless 操作 无需授权 API
🏗️ 架构设计 系统架构 设计决策
👨‍💻 开发指南 开发规范 开发流程
🤝 贡献 贡献指南 如何提交 PR

📌 官方文档: Amazon SP-API 文档

🚀 快速开始

安装

go get github.com/vanling1111/amazon-sp-api-go-sdk

基本用法

package main

import (
    "context"
    "fmt"
    "log"
    "time"

    "github.com/vanling1111/amazon-sp-api-go-sdk/internal/models"
    "github.com/vanling1111/amazon-sp-api-go-sdk/pkg/spapi"
    orders "github.com/vanling1111/amazon-sp-api-go-sdk/pkg/spapi/orders-v0"
)

func main() {
    // 1. 创建基础 SP-API 客户端
    baseClient, err := spapi.NewClient(
        spapi.WithRegion(models.RegionNA),
        spapi.WithCredentials(
            "your-client-id",
            "your-client-secret",
            "your-refresh-token",
        ),
    )
    if err != nil {
        log.Fatal(err)
    }
    defer baseClient.Close()

    // 2. 创建 Orders API 客户端
    ordersClient := orders.NewClient(baseClient)

    // 3. 调用 API 方法
    ctx := context.Background()
    params := map[string]string{
        "MarketplaceIds": "ATVPDKIKX0DER",
        "CreatedAfter":   time.Now().Add(-7 * 24 * time.Hour).Format(time.RFC3339),
    }

    result, err := ordersClient.GetOrders(ctx, params)
    if err != nil {
        log.Fatal(err)
    }

    fmt.Println("订单获取成功:", result)
}

Grantless 操作

// 创建 Grantless 操作的客户端
client, err := spapi.NewClient(
    spapi.WithRegion(models.RegionEU),
    spapi.WithGrantlessCredentials(
        "your-client-id",
        "your-client-secret",
        []string{"sellingpartnerapi::notifications"},
    ),
)
if err != nil {
    log.Fatal(err)
}
defer client.Close()

// 使用客户端访问 Grantless API...

更多示例请查看 examples/ 目录。

📦 支持的 API

本 SDK 完整支持 57 个 Amazon SP-API 版本,包括:

  • 🛒 核心业务: Orders, Feeds, Reports, Catalog Items, Listings
  • 📦 库存物流: FBA Inventory, Fulfillment, Merchant Fulfillment, Shipping
  • 💰 定价财务: Product Pricing, Fees, Finances, Seller Wallet
  • 📢 通知消息: Notifications, Messaging, Solicitations
  • 🏭 Vendor API: Direct Fulfillment 全系列, Orders, Invoices, Shipments
  • 高级功能: A+ Content, Replenishment, AWD, Data Kiosk 等

📋 完整列表: pkg/spapi/ 目录 | 🤖 自动监控: 每日检测官方 API 更新

🧪 测试

# 运行所有测试
go test ./...

# 运行测试并查看覆盖率
go test -cover ./...

核心模块测试覆盖率达到 92%+,所有测试持续通过。

🛠️ 开发

# 克隆仓库
git clone https://github.com/vanling1111/amazon-sp-api-go-sdk.git
cd amazon-sp-api-go-sdk

# 运行测试
go test ./...

# 构建项目
go build ./...

# 代码检查(可选)
golangci-lint run

更多开发信息请参考 开发指南

🤝 参与贡献

欢迎参与贡献!请参考以下文档:

  1. 开发规范: 开发指南 - 开发流程和最佳实践
  2. 代码风格: 代码风格 - Go 编码规范
  3. 贡献流程: 贡献指南 - 如何提交 PR

💡 技术亮点

  • 📚 直接从官方 OpenAPI 规范生成,确保与 Amazon API 完全一致
  • 🤖 每日自动监控 - GitHub Actions 每天自动检测官方 57 个 API 的 OpenAPI 规范变更
  • 🔔 变更通知 - 检测到 API 变更时自动创建 GitHub Issue 提醒维护者
  • 🔄 自动化工具链,可快速同步官方 API 更新
  • 🧪 高测试覆盖率,核心模块达到 92%+
  • 📖 完整的中文文档和示例代码

📞 支持与联系

📜 许可证

本项目采用双许可证模式:

🆓 AGPL-3.0(开源许可证)- 免费

适用于

  • 个人学习和研究
  • 学术研究项目
  • 开源项目

⚠️ 要求

  • 必须开源你的完整项目(AGPL-3.0)
  • 包含原始版权声明
  • 向所有用户提供源代码(包括网络用户)

💰 商业许可证 - 付费

适用于

  • 商业产品和服务
  • SaaS/托管服务
  • 企业内部使用
  • 闭源软件集成

📧 获取商业许可vanling1111@gmail.com


📄 详细条款: LICENSE | 📊 许可证对比: 见 LICENSE 文件


🌟 致谢

感谢所有贡献者的付出!

⚖️ 免责声明

本项目是独立开发的 SDK,不隶属于 Amazon。使用本 SDK 时请遵守 Amazon Selling Partner API 使用协议

本软件按"现状"提供,不提供任何明示或暗示的保证。使用本软件的风险由您自行承担。


关注本项目 ⭐ 以获取最新进展!

注意:请在使用前仔细阅读 LICENSE 文件,确保您的使用场景符合许可证要求。