JSON Schemas
此内容尚不支持你的语言。
Schemas are located in the schemas.gen.ts file. This file contains runtime schemas generated from your OpenAPI specification definitions located in #/components/schemas. If you’re using OpenAPI 3.1, your schemas are fully JSON Schema compliant and can be used with other tools supporting JSON Schema.
Configuration
Section titled “Configuration”You can modify the contents of schemas.gen.ts by configuring the @hey-api/schemas plugin. Note that you must specify the default plugins to preserve the default output.
export default { input: 'hey-api/backend', // sign up at app.heyapi.dev output: 'src/client', plugins: [ // ...other plugins { name: '@hey-api/schemas', type: 'json', }, ],};export default { input: 'hey-api/backend', // sign up at app.heyapi.dev output: 'src/client', plugins: [ // ...other plugins { name: '@hey-api/schemas', type: 'form', }, ],};export default { input: 'hey-api/backend', // sign up at app.heyapi.dev output: 'src/client', plugins: [ // ...other plugins '@hey-api/schemas', ],};Output
Section titled “Output”Below is an example output generated in the type: 'form' style. Disabling schemas will not generate the schemas.gen.ts file.
export const PetSchema = { required: ['name'], properties: { id: { type: 'integer', format: 'int64', example: 10, }, name: { type: 'string', example: 'doggie', }, }, type: 'object',} as const;A great use case for schemas is client-side form input validation.
import { $Schema } from './client/schemas.gen';
const maxInputLength = $Schema.properties.text.maxLength;
if (userInput.length > maxInputLength) { throw new Error(`Text length can't exceed ${maxInputLength} characters!`);}You can view the complete list of options in the UserConfig interface.
Examples
You can view live examples on StackBlitz or on GitHub.