Saltar al contenido
Meeko
Escribe para buscar en las guías y en la referencia de la API. Ábrela desde cualquier página con / o Ctrl K; muévete con las flechas y entra con Intro.
Empezar

Contenidos

En esta página

ApiClient

tipo

Cliente de API tipado: un árbol según clientKey con un método por verbo HTTP. Un segmento dinámico se llama con sus parámetros (api.users({ id }).get()); los métodos que se alcanzan así ya no reciben params. Cada método recibe query, body y signal según su operación y devuelve la salida, o rechaza con ClientError.

El segmento de clientKey que forma by con el nombre en mayúscula inicial de un parámetro de la ruta (byId para [id] o [...id]) es el segmento dinámico de ese parámetro. Desde 1.2, la forma api.users.byId.get({ params: { id } }) sigue funcionando pero está obsoleta y se retirará en 2.0.

ts
import type { ApiClient } from "@meekojs/meeko/framework";

Código fuente src/shared/clients.ts:261

Declaración #

ts
type ApiClient<Contract extends Record<string, Record<string, AnyApiOperation>>> = ApiNode<ClientEntries<Contract>, never>

Parámetros de tipo #

Contract extends Record<string, Record<string, AnyApiOperation>>

Contrato ApiContract generado, indexado por clientKey.

Ejemplo #

ts
import type { ApiClient, ApiOperation } from "@meekojs/meeko/framework";

declare const api: ApiClient<{ users: { get: ApiOperation<undefined, { page?: string }, undefined, string[]> } }>;
const names = await api.users.get({ query: { page: "2" } });

Segmentos dinámicos, desde 1.2:

ts
import type { ApiClient, ApiOperation } from "@meekojs/meeko/framework";

type User = { id: string; name: string };
declare const api: ApiClient<{
  "users.byId": { get: ApiOperation<{ id: string }, undefined, undefined, User> };
  "orgs.byOrg.users.byId": { delete: ApiOperation<{ org: string; id: string }, undefined, undefined, undefined> };
}>;
const user = await api.users({ id: "123" }).get();
await api.orgs({ org: "acme" }).users({ id: "123" }).delete();

Véase también #

¿Te sirvió esta página?

Añadir un comentario

Se envía al elegir «Sí» o «No». Solo se guardan la página, tu respuesta y el comentario: ni cookies ni datos tuyos.

0 de 2000 caracteres

Editar en GitHub: packages/meeko/src/shared/clients.ts