开放 API

Better Auth 的开放 API 参考。

这是一个为 Better Auth 提供开放 API 参考的插件。它会展示所有由插件和核心添加的端点,同时也提供测试端点的方法。该插件使用 Scalar 来展示开放 API 参考。

该插件仍处于开发初期。我们正在为其添加更多功能并填补空白。

安装

auth 配置中添加插件

auth.ts
import { betterAuth } from "better-auth"
import { openAPI } from "better-auth/plugins"

export const auth = betterAuth({
    plugins: [
        openAPI(), 
    ]
})

访问 /api/auth/reference 查看开放 API 参考

每个插件的端点会按插件名称分组。核心端点会归到 Default 组下。模型架构会归到 Models 组下。

开放 API 参考

使用

开放 API 参考

生成的 Schema

若要以 JSON 格式直接获取生成的开放 API Schema,可以调用 auth.api.generateOpenAPISchema(),它将返回一个 JSON 格式的开放 API Schema。

import { auth } from "@/lib/auth"

const openAPISchema = await auth.api.generateOpenAPISchema()
console.log(openAPISchema)

在 Scalar 中使用多个来源

如果你使用 Scalar 来构建 API 文档,可以将 Better Auth 作为除主 API 外的额外数据来源:

当你使用 Hono 和 Scalar 来构建 OpenAPI 文档时,可以通过添加 Better Auth 作为来源来集成:

app.get("/docs", Scalar({
  pageTitle: "API Documentation", 
  sources: [
    { url: "/api/open-api", title: "API" },
    // Better Auth 架构生成端点
    { url: "/api/auth/open-api/generate-schema", title: "Auth" },
  ],
}));

配置

path - 开放 API 参考服务的路径。默认是 /api/auth/reference。你可以修改为你想要的任何路径,但请注意它会附加到你的认证服务器的基础路径上。

disableDefaultReference - 如果设置为 true,将禁用 Scalar 自带的默认开放 API 参考 UI。默认值为 false

此设置允许你在一个统一的文档界面中同时展示你应用的 API 和 Better Auth 的认证端点。

theme - 允许你更改开放 API 参考页面的主题。默认是 default

nonce - 允许你为内联脚本传递 nonce 字符串,以满足内容安全策略(CSP)的要求。默认值为 undefined