---
title: 选择 SDK
description: 官方 Sudomimus SDK、它们与公开 API 的对应关系，以及每种语言应该使用哪些包。
editUrl: true
head: []
template: doc
sidebar:
  order: 1
  hidden: false
  attrs: {}
pagefind: true
draft: false
---

import { CardGrid, LinkCard } from "@astrojs/starlight/components";

Sudomimus SDK 根据公开的 OpenAPI 3.1 契约生成。契约位于 [`sudomimus/sudomimus-spec`](https://github.com/sudomimus/sudomimus-spec)。SDK 在原始 HTTPS API 之上提供请求和响应类型、JSON 序列化、client-auth 签名、JWT 解析、Session JWKS 缓存、签名验证辅助以及结构化 API 错误。

应用集成优先使用 SDK。需要排查底层请求、接入尚未支持的语言，或生成自己的客户端时，再参考 API 文档里的精确 wire contract。

## API 覆盖范围

| API | SDK 职责 |
| --- | --- |
| Connect API | 开启浏览器登录 inquiry、查询状态、兑换令牌、读取应用元数据。 |
| Session API | refresh token 轮换、session introspection、单次 logout、按 subject revoke-all。 |
| Device API | 开启 device-code 授权，并在用户批准后兑换 device code。 |
| Native API | 用 Steam ticket 或 AccessKey 凭据兑换普通 Sudomimus token。 |
| Token helpers | 解析并验证 Sudomimus access/refresh JWT。 |

## 选择语言

<CardGrid>
<LinkCard
    title="TypeScript / JavaScript"
    description="@sudomimus/connect、session、device、native、token，适用于 Node.js 和合适的浏览器运行时。"
    href="/zh-cn/sdk/typescript/"
/>
<LinkCard
    title="C#"
    description="Sudomimus.Connect、Session、Native、Token，适用于 .NET 应用。"
    href="/zh-cn/sdk/csharp/"
/>
<LinkCard
    title="Java"
    description="com.sudomimus 下的 JDK 17 modules，从 token verifier 开始。"
    href="/zh-cn/sdk/java/"
/>
</CardGrid>

## 包模型

每个 SDK 包对应一个 Sudomimus API surface。安装你要启动的流程对应的包；拿到 token 之后，再添加 Session 包处理 refresh token 生命周期。

- **Connect** 是常见的 Web 应用登录流程。`/establish` 需要 client-auth 签名，因此它需要应用的 client-auth 私钥。
- **Device** 面向 CLI、启动器、电视应用、终端等公开客户端，不需要 client secret。
- **Native** 面向 Steam Web API auth ticket 和 Sudomimus AccessKey 这类原生凭据。
- **Session** 处理初始签发之后的一切：refresh、introspection、logout、revoke-all。
- **Token** 适合只验证 access/refresh token、不调用 API 的服务。

底层协议仍由各集成指南说明：

<CardGrid>
<LinkCard title="Connect 集成" href="/zh-cn/connect/flow/" description="浏览器登录、状态轮询、callback 与 redeem。" />
<LinkCard title="设备码授权" href="/zh-cn/device/flow/" description="公开客户端的 device-code 登录。" />
<LinkCard title="原生应用集成" href="/zh-cn/native/overview/" description="Steam ticket 与 AccessKey direct-issue。" />
<LinkCard title="管理会话" href="/zh-cn/guides/managing-sessions/" description="Refresh、introspection、logout 与 revoke-all。" />
</CardGrid>

## 源码

<CardGrid>
<LinkCard
    title="SDK monorepo"
    description="所有官方 SDK 包的源码、README、issue 与发布标签。"
    href="https://github.com/sudomimus/sudomimus"
/>
<LinkCard
    title="OpenAPI 契约"
    description="SDK 据以生成的权威公开 schema。"
    href="https://github.com/sudomimus/sudomimus-spec"
/>
</CardGrid>