Meus Documentos

Barra Lateral Multi-raiz

flex-layout

  • Getting Started

  • Guides

  • Reference

typed-rx-http

  • Getting Started

  • Guides

  • Reference

global-rx-state

  • Getting Started

  • Guides

  • Reference

webflux-fe-dev-assistant

reactive-mongo-dsl

OpenAPI & Gerador de Serviço

Script Node opcional fornecido separadamente do cliente HTTP Core. Usado apenas ao gerar tipos TypeScript e arquivos de serviço a partir do JSON OpenAPI/Swagger.


Funcionalidade opcional: não necessária para uso do Core

Usuários comuns de @byeolnaerim/typed-rx-http, /next ou /rsocket não precisam executar este script e não precisam instalar openapi-typescript em seu projeto.

ts
Isolamento da dependência openapi-typescript

A geração de tipos OpenAPI requer o CLI openapi-typescript, mas o pacote não o inclui nas dependências comuns. As devDependencies.typescript do typed-rx-http mantêm a versão 6.0.3 do TypeScript, e o script auto node OpenAPI usa um ambiente temporário npx separado.

Na fase básica de geração do OpenAPI, openapi-typescript e [email protected] são executados juntos, portanto, não altera ou usa a versão do TypeScript/openapi-typescript instalada no projeto do usuário.

bash

Se necessário, o comando completo pode ser fixado como openApiTypescriptCommand.

ts

Ou você pode apenas alterar a versão do pacote que compõe o comando básico.

ts
Primeiro: prepare o arquivo do projeto que commonServiceFile apontará.

Antes que commonServiceFile apareça no exemplo do gerador, você deve entender este arquivo primeiro. commonServiceFile é o caminho do arquivo que possui as funções HTTP comuns que o serviço gerado importará, não é uma opção que cria arquivos. O nome do arquivo pode ser escolhido livremente, como rxjsHttpService.ts, commonService.ts, etc.

Código completo mínimo funcional

O arquivo abaixo cria uma vez o createHttpClient no projeto e exporta callApi e callApiStream para reutilização pelo serviço gerado. Se cache ou autenticação de sessão não forem necessários, você pode começar com esta estrutura.

rxjsHttpService.ts
ts
Código completo incluindo cache de sessão/CSR/SSR

Se o serviço gerado usar callApiClientCache ou callApiServerCache, ou se você quiser tratar cabeçalhos por solicitação e autenticação de sessão de forma comum no Next.js, expanda para a forma completa a seguir.

rxjsHttpService.ts
ts
Método de execução
ts
Arquivos gerados

As configurações padrão geram os arquivos abaixo.

text

apiUnionArrays.tsgera não apenas enums de schema OpenAPI, mas também arrays constantes readonly de enums de parâmetros de query, path, header e cookie, além de processar os items.enum de parâmetros de query array.


Opcional: conectar o Swagger do backend ao commonService do projeto

A partir daqui, um exemplo de como conectar o gerador ao projeto real. WebFlux/webflux-fe-dev-assistant é apenas uma das maneiras de fornecer Swagger, não é uma dependência obrigatória.

Preparar documentação Swagger

O Swagger pode ser do Springdoc, de outras ferramentas OpenAPI ou de arquivos escritos manualmente. Se você usar o endpoint funcional do WebFlux, webflux-fe-dev-assistantVocê também pode usar a forma de fornecer documentação Swagger.

Exemplo de geração especificando opções no projeto

Você pode especificar o endpoint do backend, o swagger.json a ser salvo, o caminho de saída de tipos/serviços e commonServiceFile de acordo com a estrutura do projeto.

generateSwagger.cjs
js

Em ambientes onde não é possível receber documentos via HTTP, você pode usar junto com as mesmas opções de saída. generateSwaggerFromFilepara isso.

commonServiceFile é o caminho de importação

commonServiceFileé o caminho do arquivo que possui as funções callApi, callApiStream e o wrapper de cache que o serviço gerado importará. O gerador não é uma opção para criar ou sobrescrever este arquivo.

ApiBusinessService.ts
ts
Exemplo de onde os resultados da geração são colocados no projeto
text

Um arquivo público designado como commonServiceFile, como rxjsHttpService.ts, é gerenciado diretamente pelo projeto. Os resultados abaixo de auto e @types/auto são regenerados quando o documento muda.

Regras de nome de arquivo e função

O nome do arquivo de serviço é determinado pelos dois primeiros segmentos da URL, e o nome da função é determinado a partir do terceiro segmento. Variáveis de caminho são incluídas no nome da função no formato By + PascalCase.

GET /api/business/workplaces/search

ApiBusinessService.ts → workplacesSearch({ params })

GET /api/business/workplaces/{id}

ApiBusinessService.ts → workplacesById({ path })

GET /api/orders/history/search

ApiOrdersService.ts → historySearch({ params })

POST /oauth2/login

Oauth2LoginService.ts → post({ body })

Argumentos de chamada da função de geração
GeneratedServiceUsage.tsx
tsx

As chaves dos parâmetros de query do serviço gerado são params, as variáveis de caminho são path, e o corpo da solicitação é body. Dentro da função de geração, cada um é convertido em ServiceArguments de queryString, pathVariable e body.

© 2026 Byeolnaerim. Todos os direitos reservados.IntroduçãoPolítica de Privacidade