Legacy Clients
Before standalone client packages, clients were generated using @hey-api/openapi-ts
. In fact, @hey-api/openapi-ts
still supports generating legacy clients. You can generate them with the client
config option.
export default {
client: 'fetch',
input: 'path/to/openapi.json',
output: 'src/client',
}
export default {
client: 'axios',
input: 'path/to/openapi.json',
output: 'src/client',
}
export default {
client: 'angular',
input: 'path/to/openapi.json',
output: 'src/client',
}
export default {
client: 'node',
input: 'path/to/openapi.json',
output: 'src/client',
}
export default {
client: 'xhr',
input: 'path/to/openapi.json',
output: 'src/client',
}
Available Clients
Caveats
Please be aware that legacy clients are missing some key features:
- no typesafe errors 🚫
- no access to the original request and response 🚫
- hard to configure individual requests 👎
- inconsistent interceptors and response APIs 👎
TIP
You might not need a node
client. Fetch API is experimental in Node.js v18 and stable in Node.js v21. We recommend upgrading to the latest Node.js version.
Interceptors
Interceptors (middleware) can be used to modify requests before they're sent or responses before they're returned to the rest of your application.
Below is an example request interceptor
OpenAPI.interceptors.request.use((request) => {
doSomethingWithRequest(request);
return request; // <-- must return request
});
OpenAPI.interceptors.request.eject((request) => {
doSomethingWithRequest(request);
return request; // <-- must return request
});
and an example response interceptor
OpenAPI.interceptors.response.use(async (response) => {
await doSomethingWithResponse(response); // async
return response; // <-- must return response
});
OpenAPI.interceptors.response.eject(async (response) => {
await doSomethingWithResponse(response); // async
return response; // <-- must return response
});
TIP
To eject, you must provide the same function that was passed to use()
.
WARNING
Angular client does not currently support request interceptors.
Examples
You can view live examples on StackBlitz.
Sponsoring
Love Hey API? Please consider becoming a sponsor.