UNPKG

@rxap/open-api

Version:

This package provides tools for working with OpenAPI specifications in Angular applications. It includes services for configuring and loading OpenAPI definitions, validating requests and responses against schemas, and handling errors. It also offers utili

50 lines (49 loc) 2.34 kB
import { HttpHeaders, HttpParams } from '@angular/common/http'; import { HttpRemoteMethodParameter } from '@rxap/remote-method/http'; import { OpenAPIV3 } from 'openapi-types'; import { OperationObjectWithMetadata } from './open-api'; export interface SchemaValidationResponse<Data> { headers: HttpHeaders; status: number; body?: Data | null; data?: Data; } export declare class SchemaValidationMixin<Response = any, Parameters extends Record<string, any> | void = any, RequestBody = any> { static STRICT: boolean; protected disableSchemaValidation?: boolean; /** * Validates the parameters against the schema specified in the operation object * * @param operation * @param parameters * @param strict * @protected */ validateParameters(operation: OperationObjectWithMetadata, parameters?: Parameters, strict?: boolean): void; /** * Validates the http response against the schema specified in the operation object * * @param operation * @param response * @param strict * @protected */ validateResponse(operation: OperationObjectWithMetadata, response: SchemaValidationResponse<Response>, strict?: boolean): void; validateRequestBody(operation: OperationObjectWithMetadata, body?: RequestBody, strict?: boolean): void; validationError(message: string, strict: boolean, schema?: OpenAPIV3.SchemaObject | OpenAPIV3.ReferenceObject, value?: any): void; buildHttpParams(operationParameters: OpenAPIV3.ParameterObject[], parameters?: Parameters, ignoreUndefined?: boolean): HttpParams; buildHttpHeaders(operationParameters: OpenAPIV3.ParameterObject[], parameters?: Parameters): HttpHeaders; buildHttpPathParams(operationParameters: OpenAPIV3.ParameterObject[], parameters?: Parameters): Record<string, string>; /** * Converts open api parameters into the corresponding http options to * create a http request. The transformation is guided by the openapi definition * * @param operation * @param parameters * @param requestBody * @param ignoreUndefined */ buildHttpOptions(operation: OperationObjectWithMetadata, parameters?: Parameters, requestBody?: RequestBody, ignoreUndefined?: boolean): HttpRemoteMethodParameter; private buildBody; private validate; }