Requisições cruas
Os métodos gerados são a forma recomendada para o dia a dia porque carregam tipos de parâmetros e resposta. Mas às vezes você precisa chamar uma rota que ainda não está na SDK, testar um endpoint novo ou fazer uma chamada mais direta.
Para isso, o Cinderace expõe helpers no estilo Axios que usam a mesma baseUrl, o mesmo token e o mesmo fetch dos métodos gerados.
const { data, status, headers } = await sdk.get("/raffles/active", { params: { page: 1 }});
console.log(status);console.log(data);POST, PUT, PATCH e DELETE
Seção intitulada “POST, PUT, PATCH e DELETE”const response = await sdk.post("/user/sign-in", { captcha: "<token-do-captcha>", cpf: "00000000000", password: "senha"});
await sdk.put("/user/profile", { name: "Maria Silva"});
await sdk.patch("/user/profile", { name: "Maria Souza"});
await sdk.delete("/user/payment-method/card-id");request()
Seção intitulada “request()”Quando o método é dinâmico, use a forma de configuração:
const response = await sdk.request({ method: "PATCH", url: "/user/profile", data: { name: "Maria Silva" }});Retorno
Seção intitulada “Retorno”Toda chamada crua devolve:
interface LMResponse<T> { data: T; status: number; statusText: string; headers: Headers;}Diferente dos métodos gerados, que devolvem direto o body tipado, o modo cru devolve o envelope completo.
| Opção | Para que serve |
|---|---|
params |
Query string. Aceita objeto ou URLSearchParams. |
data |
Body. Objetos viram JSON; FormData, Blob, ArrayBuffer e strings passam direto. |
headers |
Headers extras daquela chamada. |
signal |
AbortSignal para cancelar a requisição. |
responseType |
json, text, arrayBuffer ou blob. |
validateStatus |
Define o que conta como sucesso. O padrão é 2xx. |
Por padrão, status fora de 2xx lança LMSdkError:
import { LMSdkError } from "@luckymaker/sdk-core";
try { await sdk.get("/missing");} catch (error) { if (error instanceof LMSdkError) { console.log(error.status); console.log(error.code); console.log(error.body); }}Para tratar o status sem exceção:
const response = await sdk.get("/missing", { validateStatus: (status) => status < 500});
console.log(response.status);Base URL e token
Seção intitulada “Base URL e token”Os helpers usam o mesmo cliente:
const sdk = new LMSdk({ baseUrl: "api.sualoja.com.br"});
// GET https://api.sualoja.com.br/v1/raffles/active?page=1await sdk.get("/raffles/active", { params: { page: 1 } });Se a sessão estiver autenticada, o header vai junto automaticamente:
Authorization: Bearer <token>