UNPKG

moleculer-api

Version:

A dynamic API Gateway for MoleculerJS which updates REST endpoints and aggregated GraphQL schema, access control policy for each action calls from metadata of remote services schema without restart or deployment.

44 lines (43 loc) 1.63 kB
import { CallConnectorSchema, ConnectorCatalog, MapConnectorSchema, PublishConnectorSchema } from "../../connector/schema"; import { IProtocolPluginSchema, IProtocolPluginCatalog } from "../plugin"; export declare type RESTProtocolPluginSchema = IProtocolPluginSchema & { description?: string; basePath: string; routes: RESTRouteSchema[]; }; export declare type RESTRouteSchema = { path: string; description?: string; deprecated?: boolean; } & (({ method: "GET"; } & (RESTCallableRouteResolverSchema | RESTMappableRouteResolverSchema)) | ({ method: "POST" | "PUT" | "PATCH" | "DELETE"; } & (Omit<RESTCallableRouteResolverSchema, "ignoreError"> | RESTPublishableRouteResolverSchema))); export declare type RESTRouteResolverSchema = RESTCallableRouteResolverSchema | RESTPublishableRouteResolverSchema | RESTMappableRouteResolverSchema; export declare type RESTCallableRouteResolverSchema = { call: CallConnectorSchema; ignoreError?: boolean; }; export declare type RESTPublishableRouteResolverSchema = { publish: PublishConnectorSchema; }; export declare type RESTMappableRouteResolverSchema = { map: MapConnectorSchema<(obj: { path: any; query: any; body: any; context: any; }) => any>; }; export declare type RESTProtocolPluginCatalog = IProtocolPluginCatalog & { schema: RESTProtocolPluginSchema; description: string | null; entries: { path: string; method: "GET" | "POST" | "PUT" | "PATCH" | "DELETE"; description: string | null; deprecated: boolean; connector: ConnectorCatalog; }[]; };