0.1.6 • Published 10 months ago

use-swagger v0.1.6

Weekly downloads
-
License
MIT
Repository
github
Last release
10 months ago

📦 Instalação

Com npm

npm install use-swagger

pnpm add use-swagger

yarn add use-swagger

🚀 Como Utilizar

Siga os passos abaixo para integrar use-swagger em seu projeto e gerar tipos automaticamente a partir de uma URL Swagger.

Passo 1: Criar uma pasta e arquivo de geração de tipos

  1. Crie uma pasta chamada client no diretório do seu projeto.
  2. Dentro da pasta client, crie um arquivo chamado generate.ts.

Passo 2: Configurar generate.ts

No arquivo generate.ts, adicione o seguinte código:

const fs = require("fs");
const { generateSwaggerTypes } = require("use-swagger");

generateSwaggerTypes({
  fs, // Importante: o 'fs' é uma dependência necessária para manipular arquivos no sistema // npm install fs
  fsPath: "./client/swagger_client.ts", // Caminho onde o arquivo será injetado ao rodar o script
  swaggerUrl: "https://.../swagger.json" // URL do seu arquivo swagger.json, que contém as definições das APIs
});

Passo 3: Configurar o Script de Execução

Para facilitar a geração dos tipos, adicione o seguinte script ao seu package.json:

"scripts": {
  "generateSwagger": "node client/generate.ts"
}
npm run generateSwagger

Passo 4: Criar o Cliente

Agora, crie um arquivo chamado client.ts na mesma pasta client que você criou anteriormente.

Passo 5: Configurar client.ts

No arquivo client.ts, adicione o seguinte código:

import { createClient } from "use-swagger";

import { Swagger } from "./swagger_client";

export const { client, useSwagger } = createClient<Swagger>({
  fetcher: async ({ url, method, body, headers }) => {
    return fetch(((process.env.api as string) + url), {
      method,
      body: body ? JSON.stringify(body) : undefined,
      headers
    }).then((res) => res.json());
  },
  defaultHeaders: { tenantId: process.env.tenantId || "" },
});

Passo 6 (Caso vá usar o useSwagger como hook): Configurar app.tsx

No arquivo app.tsx, adicione o seguinte código:

import { QueryClientSwaggerContextProvider } from "use-swagger";

...
  
  <QueryClientSwaggerContextProvider> 
    ...
  </QueryClientSwaggerContextProvider>

...

🛠️ Casos de Uso

Após configurar o cliente, você pode utilizá-lo para fazer requisições à sua API. Abaixo está um exemplo simples de como usar o client:

Exemplo de Uso

import { client } from "..."; // ajuste o caminho conforme necessário

const res = await client({
  url: "/HelloWorld", // O endpoint da sua API
  method: "get",      // O método HTTP a ser utilizado (GET, POST, etc.)
  body: {},          // Object Params/RequestBody de acordo com a url selecionada
  headers: { anyHeader: "--" } // Cabeçalhos individuais deste end-point
});

📡 Usando useSwagger

Para fazer requisições usando useSwagger, você deve configurá-lo da seguinte forma:

const res = useSwagger({
  url: "/Blog/categorias", // O endpoint da sua API
  method: "get",           // O método HTTP a ser utilizado (GET, POST, etc.)
  enableCache: true,       // Ativa o cache para a requisição (Opcional)
  enabled: false,          // Habilita ou desabilita a execução do hook (Opcional)
  interval: 1000 * 60,     // Intervalo em milissegundos para re-fetch (Opcional)
  onError: () => {},       // Função de callback em caso de erro (Opcional)
  queryKey: ["MyCustomKey", param1, param2] // Chave para identificação da consulta (Opcional)
});
ParâmetroTipoDescrição
urlstringO caminho do endpoint que você deseja acessar. Exemplo: "/Blog/categorias".
methodstringO método HTTP que será utilizado para a requisição (e.g., get, post).
enableCachebooleanAtiva o cache para os resultados da requisição, melhorando a performance em chamadas repetidas.
enabledbooleanHabilita ou desabilita a execução do hook, útil para controlar quando a requisição deve ser feita.
intervalnumberDefine o intervalo (em milissegundos) entre re-fetches automáticos. O padrão é 1000 * 60 (1 minuto).
onErrorfunctionFunção que será chamada em caso de erro na requisição. Você pode usar isso para lidar com erros de forma personalizada.
queryKeyarrayUm array que contém chaves para identificação da consulta e para controle do cache.
0.1.6

10 months ago

0.1.5

10 months ago

0.1.4

10 months ago

0.1.3

10 months ago

0.1.2

10 months ago

0.1.1

10 months ago

0.1.0

10 months ago

0.0.9

10 months ago

0.0.8

10 months ago

0.0.7

10 months ago

0.0.6

10 months ago

0.0.5

10 months ago

0.0.4

10 months ago

0.0.3

10 months ago

0.0.2

10 months ago

0.0.1

10 months ago