Api overview
HTTP API service declaration.
Added in v1.0.0
Table of contents
constructors
delete
Signature
export declare const delete: <Id extends string>(id: Id, path: PathInput, options?: Partial<ApiEndpoint.Options> | undefined) => ApiEndpoint.ApiEndpoint.Default<Id>
Added in v1.0.0
endpoint
Signature
export declare const endpoint: <Id extends string>(
method: Method,
id: Id,
path: PathInput,
options?: Partial<ApiEndpoint.Options> | undefined
) => ApiEndpoint.ApiEndpoint.Default<Id>
Added in v1.0.0
get
Signature
export declare const get: <Id extends string>(
id: Id,
path: PathInput,
options?: Partial<ApiEndpoint.Options> | undefined
) => ApiEndpoint.ApiEndpoint.Default<Id>
Added in v1.0.0
make
Signature
export declare const make: (options?: Partial<ApiOptions>) => Api.Empty
Added in v1.0.0
patch
Signature
export declare const patch: <Id extends string>(
id: Id,
path: PathInput,
options?: Partial<ApiEndpoint.Options> | undefined
) => ApiEndpoint.ApiEndpoint.Default<Id>
Added in v1.0.0
post
Signature
export declare const post: <Id extends string>(
id: Id,
path: PathInput,
options?: Partial<ApiEndpoint.Options> | undefined
) => ApiEndpoint.ApiEndpoint.Default<Id>
Added in v1.0.0
put
Signature
export declare const put: <Id extends string>(
id: Id,
path: PathInput,
options?: Partial<ApiEndpoint.Options> | undefined
) => ApiEndpoint.ApiEndpoint.Default<Id>
Added in v1.0.0
setRequest
Signature
export declare const setRequest: <Request extends ApiRequest.Any>(
request: Request
) => <
Id extends string,
_ extends ApiRequest.Any,
Response extends ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint.ApiEndpoint<Id, _, Response, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, Response, Security>
Added in v1.0.0
getters
getEndpoint
Signature
export declare const getEndpoint: <A extends Api.Any, Id extends Api.Ids<A>>(api: A, id: Id) => Api.EndpointById<A, Id>
Added in v1.0.0
models
Api (interface)
Signature
export interface Api<E extends ApiEndpoint.ApiEndpoint.Any> extends Pipeable.Pipeable {
readonly groups: ReadonlyArray<ApiGroup.ApiGroup<E>>
readonly options: ApiOptions
}
Added in v1.0.0
Api (namespace)
Added in v1.0.0
Any (type alias)
Any api with Endpoint = Endpoint.Any
Signature
export type Any = Api<ApiEndpoint.ApiEndpoint.Any>
Added in v1.0.0
Content (type alias)
Signature
export type Content<A> = A extends Api<infer E> ? ApiEndpoint.ApiEndpoint.Context<E> : never
Added in v1.0.0
Empty (type alias)
Default api group spec.
Signature
export type Empty = Api<never>
Added in v1.0.0
EndpointById (type alias)
Signature
export type EndpointById<A extends Any, Id extends ApiEndpoint.ApiEndpoint.AnyId> = [A] extends [Api<infer E>]
? E extends ApiEndpoint.ApiEndpoint<Id, any, any, any>
? E
: never
: never
Added in v1.0.0
Endpoints (type alias)
Signature
export type Endpoints<A extends Any> = [A] extends [Api<infer E>] ? E : never
Added in v1.0.0
Ids (type alias)
Signature
export type Ids<A extends Any> = [Endpoints<A>] extends [ApiEndpoint.ApiEndpoint<infer Id, any, any, any>] ? Id : never
Added in v1.0.0
ApiOptions (interface)
Signature
export interface ApiOptions {
readonly title: string
readonly version: string
readonly description?: string
readonly servers?: ReadonlyArray<OpenApiTypes.OpenAPISpecServer | string>
readonly license?: {
readonly name: string
readonly url?: string
}
}
Added in v1.0.0
modifications
addEndpoint
Signature
export declare const addEndpoint: <E2 extends ApiEndpoint.ApiEndpoint.Any>(
endpoint: E2
) => <E1 extends ApiEndpoint.ApiEndpoint.Any>(api: Api<E1>) => Api<E2 | E1>
Added in v1.0.0
addGroup
Signature
export declare const addGroup: <E2 extends ApiEndpoint.ApiEndpoint.Any>(
group: ApiGroup.ApiGroup<E2>
) => <E1 extends ApiEndpoint.ApiEndpoint.Any>(api: Api<E1>) => Api<E2 | E1>
Added in v1.0.0
addResponse
Signature
export declare const addResponse: <
Status extends number,
Body = ApiSchema.Ignored,
Headers = ApiSchema.Ignored,
R = never
>(
response:
| ApiResponse<Status, Body, Headers, R>
| {
readonly status: Status
readonly body?: Schema.Schema<Body, any, R> | undefined
readonly headers?: Schema.Schema<Headers, any, R> | undefined
}
) => <
Id extends string,
Request extends ApiRequest.Any,
Response1 extends ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint.ApiEndpoint<Id, Request, Response1, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<Status, Body, Headers, R> | Response1, Security>
Added in v1.0.0
setRequestBody
Signature
export declare const setRequestBody: <B, R2>(
schema: Schema.Schema<B, any, R2>
) => <Id extends string, _, P, Q, H, R1, Response extends ApiResponse.Any, Security extends Security.Security.Any>(
endpoint: ApiEndpoint.ApiEndpoint<Id, ApiRequest<_, P, Q, H, R1>, Response, Security>
) => ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, P, Q, H, R2 | R1>, Response, Security>
Added in v1.0.0
setRequestHeaders
Signature
export declare const setRequestHeaders: <H, R2>(
schema: Schema.Schema<H, any, R2>
) => <Id extends string, B, P, Q, _, R1, Response extends ApiResponse.Any, Security extends Security.Security.Any>(
endpoint: ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, P, Q, _, R1>, Response, Security>
) => ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, P, Q, H, R2 | R1>, Response, Security>
Added in v1.0.0
setRequestPath
Signature
export declare const setRequestPath: <P, R2>(
schema: Schema.Schema<P, any, R2>
) => <Id extends string, B, _, Q, H, R1, Response extends ApiResponse.Any, Security extends Security.Security.Any>(
endpoint: ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, _, Q, H, R1>, Response, Security>
) => ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, P, Q, H, R2 | R1>, Response, Security>
Added in v1.0.0
setRequestQuery
Signature
export declare const setRequestQuery: <Q, R2>(
schema: Schema.Schema<Q, any, R2>
) => <Id extends string, B, P, _, H, R1, Response extends ApiResponse.Any, Security extends Security.Security.Any>(
endpoint: ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, P, _, H, R1>, Response, Security>
) => ApiEndpoint.ApiEndpoint<Id, ApiRequest<B, P, Q, H, R2 | R1>, Response, Security>
Added in v1.0.0
setResponse
Signature
export declare const setResponse: <
Status extends number,
Body = ApiSchema.Ignored,
Headers = ApiSchema.Ignored,
R = never
>(
response:
| {
readonly status: Status
readonly body?: Schema.Schema<Body, any, R> | undefined
readonly headers?: Schema.Schema<Headers, any, R> | undefined
}
| ApiResponse<Status, Body, Headers, R>
) => <
Id extends string,
Request extends ApiRequest.Any,
_ extends ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint.ApiEndpoint<Id, Request, _, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<Status, Body, Headers, R>, Security>
Added in v1.0.0
setResponseBody
Signature
export declare const setResponseBody: <B, R2>(
schema: Schema.Schema<B, any, R2>
) => <
Id extends string,
Request extends ApiRequest.Any,
S extends number,
_,
H,
R1,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<S, _, H, R1>, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<S, B, H, R2 | R1>, Security>
Added in v1.0.0
setResponseHeaders
Signature
export declare const setResponseHeaders: <H, R2>(
schema: Schema.Schema<H, any, R2>
) => <
Id extends string,
Request extends ApiRequest.Any,
S extends number,
B,
_,
R1,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<S, B, _, R1>, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<S, B, H, R2 | R1>, Security>
Added in v1.0.0
setResponseRepresentations
Signature
export declare const setResponseRepresentations: (
representations: readonly [Representation, ...Representation[]]
) => <
Id extends string,
Request extends ApiRequest.Any,
Response extends ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint.ApiEndpoint<Id, Request, Response, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, Response, Security>
Added in v1.0.0
setResponseStatus
Signature
export declare const setResponseStatus: <Status extends number>(
status: Status
) => <
Id extends string,
Request extends ApiRequest.Any,
_ extends number,
B,
H,
R,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<_, B, H, R>, Security>
) => ApiEndpoint.ApiEndpoint<Id, Request, ApiResponse<Status, B, H, R>, Security>
Added in v1.0.0
setSecurity
Signature
export declare const setSecurity: <Security extends Security.Security.Any>(
security: Security
) => <
Id extends string,
Request extends ApiRequest.Any,
Response extends ApiResponse.Any,
_ extends Security.Security.Any
>(
endpoint: ApiEndpoint.ApiEndpoint<Id, Request, Response, _>
) => ApiEndpoint.ApiEndpoint<Id, Request, Response, Security>
Added in v1.0.0
schemas
FormData
FormData schema
Signature
export declare const FormData: Schema.Schema<FormData, FormData, never>
Added in v1.0.0
type id
TypeId
Signature
export declare const TypeId: typeof TypeId
Added in v1.0.0
TypeId (type alias)
Signature
export type TypeId = typeof TypeId
Added in v1.0.0