ApiEndpoint overview
HTTP endpoint declaration.
Added in v1.0.0
Table of contents
- constructors
- getters
- models
- modifications
- type id
constructors
delete
Signature
export declare const delete: <Id extends string>(id: Id, path: HttpServer.router.PathInput, options?: Partial<Options> | undefined) => ApiEndpoint.Default<Id>
Added in v1.0.0
get
Signature
export declare const get: <Id extends string>(
id: Id,
path: HttpServer.router.PathInput,
options?: Partial<Options>
) => ApiEndpoint.Default<Id>
Added in v1.0.0
make
Signature
export declare const make: <Id extends string>(
method: Method.Method,
id: Id,
path: HttpServer.router.PathInput,
options?: Partial<Options>
) => ApiEndpoint.Default<Id>
Added in v1.0.0
patch
Signature
export declare const patch: <Id extends string>(
id: Id,
path: HttpServer.router.PathInput,
options?: Partial<Options>
) => ApiEndpoint.Default<Id>
Added in v1.0.0
post
Signature
export declare const post: <Id extends string>(
id: Id,
path: HttpServer.router.PathInput,
options?: Partial<Options>
) => ApiEndpoint.Default<Id>
Added in v1.0.0
put
Signature
export declare const put: <Id extends string>(
id: Id,
path: HttpServer.router.PathInput,
options?: Partial<Options>
) => ApiEndpoint.Default<Id>
Added in v1.0.0
getters
getMethod
Signature
export declare const getMethod: <
Id extends string,
Request extends ApiRequest.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, Response, Security>
) => Method.Method
Added in v1.0.0
getOptions
Signature
export declare const getOptions: <
Id extends string,
Request extends ApiRequest.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, Response, Security>
) => Options
Added in v1.0.0
getPath
Signature
export declare const getPath: <
Id extends string,
Request extends ApiRequest.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, Response, Security>
) => HttpServer.router.PathInput
Added in v1.0.0
getRequest
Signature
export declare const getRequest: <
Id extends string,
Request extends ApiRequest.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, Response, Security>
) => Request
Added in v1.0.0
getResponse
Signature
export declare const getResponse: <
Id extends string,
Request extends ApiRequest.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, Response, Security>
) => readonly Response[]
Added in v1.0.0
getSecurity
Signature
export declare const getSecurity: <
Id extends string,
Request extends ApiRequest.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, Response, Security>
) => Security
Added in v1.0.0
isFullResponse
Is used by the client and server implementation to determine whether to use a full { status; body; headers }
response or just the body.
The logic is that if there is only one declared response and it doesn’t specify any headers, the simplified version with body only is used, otherwise the full response is used.
Signature
export declare const isFullResponse: <
Id extends string,
Request extends ApiRequest.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, Response, Security>
) => boolean
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.ApiResponse<Status, Body, Headers, R>
) => <
Id extends string,
Request extends ApiRequest.ApiRequest.Any,
_ extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, _, Security>
) => ApiEndpoint<Id, Request, ApiResponse.ApiResponse<Status, Body, Headers, R>, Security>
Added in v1.0.0
models
ApiEndpoint (interface)
Signature
export interface ApiEndpoint<
Id extends ApiEndpoint.AnyId,
Request extends ApiRequest.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
_Security extends Security.Security.Any
> extends ApiEndpoint.Variance<Id, Request, Response, _Security>,
Pipeable.Pipeable {}
Added in v1.0.0
ApiEndpoint (namespace)
Added in v1.0.0
Variance (interface)
Signature
export interface Variance<
Id,
Request extends ApiRequest.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
> {
readonly [TypeId]: {
readonly _Id: Types.Covariant<Id>
readonly _Request: Types.Covariant<Request>
readonly _Response: Types.Covariant<Response>
readonly _Security: Types.Covariant<Security>
}
}
Added in v1.0.0
Any (type alias)
Any endpoint with Request = Request.Any
and Response = Response.Any
.
Signature
export type Any = ApiEndpoint<AnyId, ApiRequest.ApiRequest.Any, ApiResponse.ApiResponse.Any, Security.Security.Any>
Added in v1.0.0
AnyId (type alias)
Any endpoint id.
Signature
export type AnyId = string
Added in v1.0.0
Context (type alias)
Signature
export type Context<Endpoint> = [Endpoint] extends [ApiEndpoint<any, infer Request, infer Response, infer S>]
? ApiRequest.ApiRequest.Context<Request> | ApiResponse.ApiResponse.Context<Response> | Security.Security.Context<S>
: never
Added in v1.0.0
ContextNoSecurity (type alias)
Signature
export type ContextNoSecurity<Endpoint> = [Endpoint] extends [ApiEndpoint<any, infer Request, infer Response, any>]
? ApiRequest.ApiRequest.Context<Request> | ApiResponse.ApiResponse.Context<Response>
: never
Added in v1.0.0
Default (type alias)
Default endpoint spec.
Signature
export type Default<Id extends AnyId> = ApiEndpoint<
Id,
ApiRequest.ApiRequest.Default,
ApiResponse.ApiResponse.Default,
Security.Security<void>
>
Added in v1.0.0
Error (type alias)
Signature
export type Error<Endpoint> = [Endpoint] extends [ApiEndpoint<any, any, any, infer S>]
? Security.Security.Error<S>
: never
Added in v1.0.0
ExcludeById (type alias)
Signature
export type ExcludeById<Endpoint extends Any, Id extends AnyId> =
Endpoint extends ApiEndpoint<Id, any, any, any> ? never : Endpoint
Added in v1.0.0
ExtractById (type alias)
Signature
export type ExtractById<Endpoint, Id extends AnyId> = Endpoint extends ApiEndpoint<Id, any, any, any> ? Endpoint : never
Added in v1.0.0
Id (type alias)
Signature
export type Id<Endpoint> = Endpoint extends ApiEndpoint<infer Id, any, any, any> ? Id : never
Added in v1.0.0
Request (type alias)
Signature
export type Request<Endpoint> = Endpoint extends ApiEndpoint<any, infer Request, any, any> ? Request : never
Added in v1.0.0
Response (type alias)
Signature
export type Response<Endpoint> = Endpoint extends ApiEndpoint<any, any, infer Response, any> ? Response : never
Added in v1.0.0
Security (type alias)
Signature
export type Security<Endpoint> = Endpoint extends ApiEndpoint<any, any, any, infer Security> ? Security : never
Added in v1.0.0
Options (interface)
Signature
export interface Options {
readonly deprecated?: boolean
readonly description?: string
readonly summary?: string
}
Added in v1.0.0
modifications
addResponse
Signature
export declare const addResponse: <
Status extends number,
Body = ApiSchema.Ignored,
Headers = ApiSchema.Ignored,
R = never
>(
response:
| ApiResponse.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.ApiRequest.Any,
Response1 extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, Response1, Security>
) => ApiEndpoint<Id, Request, ApiResponse.ApiResponse<Status, Body, Headers, R> | Response1, Security>
Added in v1.0.0
getId
Signature
export declare const getId: <
Id extends string,
Request extends ApiRequest.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, Response, Security>
) => Id
Added in v1.0.0
setRequest
Signature
export declare const setRequest: <Request extends ApiRequest.ApiRequest.Any>(
request: Request
) => <
Id extends string,
_ extends ApiRequest.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, _, Response, Security>
) => ApiEndpoint<Id, Request, Response, 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.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, ApiRequest.ApiRequest<_, P, Q, H, R1>, Response, Security>
) => ApiEndpoint<Id, ApiRequest.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.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, ApiRequest.ApiRequest<B, P, Q, _, R1>, Response, Security>
) => ApiEndpoint<Id, ApiRequest.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.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, ApiRequest.ApiRequest<B, _, Q, H, R1>, Response, Security>
) => ApiEndpoint<Id, ApiRequest.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.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, ApiRequest.ApiRequest<B, P, _, H, R1>, Response, Security>
) => ApiEndpoint<Id, ApiRequest.ApiRequest<B, P, Q, H, R2 | R1>, Response, 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.ApiRequest.Any,
S extends number,
_,
H,
R1,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, ApiResponse.ApiResponse<S, _, H, R1>, Security>
) => ApiEndpoint<Id, Request, ApiResponse.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.ApiRequest.Any,
S extends number,
B,
_,
R1,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, ApiResponse.ApiResponse<S, B, _, R1>, Security>
) => ApiEndpoint<Id, Request, ApiResponse.ApiResponse<S, B, H, R2 | R1>, Security>
Added in v1.0.0
setResponseRepresentations
Signature
export declare const setResponseRepresentations: (
representations: readonly [Representation.Representation, ...Representation.Representation[]]
) => <
Id extends string,
Request extends ApiRequest.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, Response, Security>
) => 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.ApiRequest.Any,
_ extends number,
B,
H,
R,
Security extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, ApiResponse.ApiResponse<_, B, H, R>, Security>
) => ApiEndpoint<Id, Request, ApiResponse.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.ApiRequest.Any,
Response extends ApiResponse.ApiResponse.Any,
_ extends Security.Security.Any
>(
endpoint: ApiEndpoint<Id, Request, Response, _>
) => ApiEndpoint<Id, Request, Response, Security>
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