@blacktopdata / blacktop-api-client
的类型化TypeScript客户端 blacktop-api (ocblacktop) v1端点。生成自API的OpenAPI规范-不手动编辑 src/.
安装
npm install @blacktopdata/blacktop-api-client
获取API密钥 https://ocblacktop.com/api。Python用户: pip install blacktop-data.
使用
import { client, EventsService } from '@blacktopdata/blacktop-api-client';
client.setConfig({
baseUrl: 'https://api.ocblacktop.com',
headers: { 'X-API-Key': process.env.BLACKTOP_API_KEY! },
});
const { data, error } = await EventsService.listF1Events({
query: { page: 1, limit: 20 },
});
赛道系列(F1、NASCAR、IndyCar、MotoGP)共享资源导向服务
(DriversService, EventsService, SeasonsService, StandingsService,……)。这个
世界拉力锦标赛 是拉力型的,有自己的服务-
WrcRalliesService, WrcStandingsService, WrcSeasonsService,
WrcDriversService:
import { client, WrcRalliesService, WrcStandingsService } from '@blacktopdata/blacktop-api-client';
// A season's rallies
const { data: rallies } = await WrcRalliesService.listWrcRallies({
query: { year: 2024 },
});
// Stage results for a rally (driver + co-driver, stage times, gaps)
const { data: stage } = await WrcRalliesService.getWrcRallyStage({
path: { id: rallyId, stageId },
});
// Drivers' championship standings
const { data: standings } = await WrcStandingsService.getWrcDriverStandings({
query: { year: 2024 },
});
服务和方法名是由OpenAPI规范生成的;重新生成SDK (见下),以便在任何API更改后拾取新的端点。
版本控制
- 主要的 破坏合同的改动(移除字段,改变类型,移除端点)
- 小 附加的改动(新的端点,新的可选字段)
- 补丁 - docs / nonfunctional
由CI自动碰撞;销, ^X.Y.Z 自动接收minor + patch。
本地再生
# from blacktop-api repo root
npm run generate:docs # writes openapi.json
npm run --prefix packages/sdk generate
npm run --prefix packages/sdk build