使用 API
公告
站点迁移啦~!
为什么迁移?
作为由我们官方维护的组件库,分散在各自的文档站点中的确有好处:它们可以各自维护自己所需的东西、互不干扰。
但是缺点也很明显: 太过分散。
组件库与核心库之间的关系是比较紧密的, 我们希望你能够在一个站点内就可以查阅或搜索到所有你想要得知的信息。
适用场景
当你不确定自己的应用场景是否应该选择 直接使用 API 模块时, 这里为你提供了一些参考:
适用
你的应用只需要一个 API 实现库,你希望使用更原始的风格调用API。
你的应用不需要 、或希望自行处理对事件的订阅与解析。(包括一切工作,例如建立网络连接)
不适用
你希望库实现事件订阅能力,可以替你处理网络连接、事件调度等。
你希望有一个 Bot 实现,它可以管理网络连接的生命周期、可以注册事件处理逻辑、替你接收事件,并进行处理。
安装
引擎选择
- Ktor引擎
你可以前往 Ktor文档 处选择一个对应所用平台下合适的
Client Engine
。 这里会根据不同平台提供几个示例,你可以选择其他可用目标。CIO 是一个比较通用的引擎。 在不知道选什么的情况下,可以考虑使用它。
runtimeOnly("io.ktor:ktor-client-cio-jvm:$ktor_version")runtimeOnly 'io.ktor:ktor-client-cio-jvm:$ktor_version'<dependency> <groupId>io.ktor</groupId> <artifactId>ktor-client-cio-jvm</artifactId> <version>${ktor_version}</version> <scope>runtime</scope> </dependency>如果你打算使用 Java11+,也可以选择 Java 引擎。
runtimeOnly("io.ktor:ktor-client-java:$ktor_version")runtimeOnly 'io.ktor:ktor-client-java:$ktor_version'<dependency> <groupId>io.ktor</groupId> <artifactId>ktor-client-java-jvm</artifactId> <version>${ktor_version}</version> <scope>runtime</scope> </dependency>JavaScript 平台下可以选择 Js 引擎。
implementation("io.ktor:ktor-client-js:$ktor_version")implementation 'io.ktor:ktor-client-js:$ktor_version'native 平台目标下,可能需要根据不同的平台类型选择不同的引擎。
可以选择 WinHttp 引擎。
implementation("io.ktor:ktor-client-winhttp:$ktor_version")implementation 'io.ktor:ktor-client-winhttp:$ktor_version'Linux 下依旧可以选择 CIO 引擎。
implementation("io.ktor:ktor-client-cio:$ktor_version")implementation 'io.ktor:ktor-client-cio:$ktor_version'可以选择 Darwin 引擎。
implementation("io.ktor:ktor-client-darwin:$ktor_version")implementation 'io.ktor:ktor-client-darwin:$ktor_version'
使用
KOOK组件的API模块提供了针对 KOOK API 的基本对应封装。
API封装的命名与API具有一定关联,例如 获取当前用户加入的服务器列表:
API的应用大差不差,因此此处仅使用部分类型作为示例, 不会演示所有API。 如果想浏览或寻找需要的 API,可前往 API定义列表 或 APIDoc引导 中进入KOOK组件的 KDoc 查阅,也可以简单的借助IDE的智能提示进行寻找。
此处仅以 获取当前用户加入的服务器列表 为例。
也可以通过额外的扩展函数来获得一个全量数据的数据流。