33 lines
1.6 KiB
Markdown
33 lines
1.6 KiB
Markdown
This folder contains a rendered OpenAPI file for each group/version. The “real” OpenAPI is generated by the running server, but the files here are used to build static frontend clients.
|
|
|
|
## Generating RTK API Clients
|
|
|
|
The RTK API clients are generated from processed OpenAPI files using the `scripts/process-specs.ts` script. The source files are in `pkg/tests/apis/openapi_snapshots`, and the processed files are stored in the `data/openapi` directory. Spec processing happens as part of `yarn generate-apis` task, but can also be triggered separately (see below).
|
|
|
|
To generate or update the RTK API clients:
|
|
|
|
1. _If generating or updating an RTK client for the first time_, update `scripts/generate-rtk-apis.js` so `schemaFile` points to the processed spec files, for example:
|
|
```typescript
|
|
'../public/app/features/dashboards/api/endpoints.gen.ts': {
|
|
schemaFile: '../data/openapi/dashboard.grafana.app-v0alpha1.json',
|
|
},
|
|
```
|
|
|
|
2. Generate or update the OpenAPI spec files by running:
|
|
```bash
|
|
go test pkg/tests/apis/openapi_test.go
|
|
```
|
|
_If generating an RTK client for a new API_, also add a new group/version of the API to the `groups` slice. If the API is behind a feature toggle, add the toggle to `EnableFeatureToggles` in `pkg/tests/apis/openapi_test.go`.
|
|
|
|
|
|
3. Run:
|
|
```bash
|
|
yarn generate-apis
|
|
```
|
|
This command generates (or updates) the spec files in the `data/openapi` directory and generates the RTK API clients.
|
|
|
|
If you want to process the OpenAPI files without generating the RTK API clients (for example, if you have a separate `generate-rtk-apis` file), run:
|
|
```bash
|
|
yarn process-specs
|
|
```
|