Package Exports
- bgm-types
- bgm-types/main.ts
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (bgm-types) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
BGM-Types
Bangumi.tv 官方 API 的 TypeScript 声明文件
API: https://github.com/bangumi/api
您目前访问的是新版本 API, 新版本 API 还在建设中,可能会有不稳定的变动。
旧版本 API 类型注解 请见 v1 分支。
How To Use
npm install bgm-types -D该声明文件暴露了以下几个命名空间,分别对应官方 API 的接口,可以按需引入。
import {
// 返回值类型
BGMPerson,
BGMCharacter,
BGMEpisode,
BGMUser,
BGMSubject,
BGMSearch,
BGMProgress,
BGMCollection,
BGMCategory, // 别名 BGMIndices
BGMEditHistory,
// 下面是请求参数类型
BGMSubjectParams,
BGMEpisodeParams,
BGMCharacterParams,
BGMPersonParams,
BGMUserParams,
BGMCollectionParams,
BGMEditHistoryParams,
BGMCategoryParams, // 别名 BGMIndicesParams
BGMSearchParams,
// 工具泛型, 用于获取请求类型中不同类型的参数
Path, // 获取 Path 参数
Query, // 获取 Query 参数
RequestBody, // 获取 RequestBody 参数
} from 'bgm-types';示例
import fetch from 'node-fetch';
import type { BGMUser } from 'bgm-types';
// 获取 Sai 老板在看的剧集 !
(async () => {
const res = await fetch('https://api.bgm.tv/user/Sai/collection?cat=watching', {
headers: {
'Content-Type': 'application/json',
},
});
const data = (await res.json()) as BGMUser.Collection;
for (let i = 0; i < data.length; ++i) {
console.log(data[i].subject.name);
}
})();
// 关于请求参数类型的使用, 以 search api, axios 请求为例
const search = (
keywords: Path<BGMSearchParams.Search>,
params?: Query<BGMSearchParams.Search>
) => {
const url = encodeURI(`/search/subject/${keywords}`);
return axios.get<BGMSearch.Search>(url, {
params,
});
}
// 其中 keywords 是路径参数
// 使用类型 BGMSearchParams.Search['path']['keywords']
// 或 Path 泛型 Path<BGMSearchParams.Search>
// params 同理Thanks
openapi-typescript: https://github.com/drwpow/openapi-typescript
js-yaml: https://github.com/nodeca/js-yaml