0Pricing
Angular Academy · Aula

API pública e pontos de entrada

Projete uma interface pública de biblioteca organizada.

API pública e pontos de entrada é uma aula grátis de Angular Academy no CoddyKit. Esta é a aula 2 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Angular Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Angular Academy inclui 4 aulas no total.

A superfície da API pública

Uma biblioteca deve expor apenas o que os consumidores devem usar. A API pública é o conjunto selecionado de exportações; todo o restante permanece interno. Nas bibliotecas Angular, essa superfície é definida por public-api.ts.

public-api.ts como arquivo agregador

public-api.ts exporta novamente os símbolos que você quer disponibilizar aos consumidores. Se algo não for exportado aqui, será efetivamente privado, mesmo que exista no código-fonte.

// projects/ui-kit/src/public-api.ts
export * from './lib/button/button.component';
export * from './lib/theme.service';
// internal helpers are intentionally NOT exported

Por que ocultar elementos internos

Manter os auxiliares privados permite refatorá-los livremente sem quebrar os consumidores. Uma API pública pequena e deliberada é mais fácil de documentar, versionar e manter do que uma API que exporta tudo.

Exportando tipos e tokens

A API pública inclui não apenas componentes, mas também as interfaces, os tipos e os tokens de injeção de que os consumidores precisam para usá-los corretamente.

export { ButtonComponent } from './lib/button/button.component';
export type { ButtonVariant } from './lib/button/button.types';
export { THEME_CONFIG } from './lib/theme.tokens';

Pontos de entrada secundários

Bibliotecas grandes são divididas em pontos de entrada secundários para que os consumidores importem apenas o que precisam (melhor eliminação de código não utilizado). Por exemplo, ui-kit/testing separado de ui-kit.

import { ButtonComponent } from 'ui-kit';
import { provideUiKitTesting } from 'ui-kit/testing';

Criando um ponto de entrada secundário

Um ponto de entrada secundário é uma subpasta com seu próprio ng-package.json e public-api.ts. O ng-packagr o encontra automaticamente e o compila como um caminho de importação separado.

projects/ui-kit/
  testing/
    ng-package.json   # marks a secondary entry point
    src/public-api.ts

Mapeamento do ponto de entrada principal

O ng-package.json da biblioteca aponta seu entryFile para public-api.ts, informando à compilação qual arquivo é a superfície pública principal.

// projects/ui-kit/ng-package.json
{
  "lib": { "entryFile": "src/public-api.ts" }
}

Projetando para a estabilidade

Trate a API pública como um contrato: remover ou renomear uma exportação é uma alteração incompatível. Adicione novas exportações livremente, mas marque-as como obsoletas antes de removê-las, para que os consumidores tenham tempo de migrar.

Evitando importações profundas

Como apenas public-api.ts é o contrato, os consumidores nunca devem importar profundamente caminhos internos como ui-kit/lib/button/internal. Exportar por meio do arquivo agregador mantém uma única superfície de importação estável.

Exportando novamente tipos de terceiros

Se um método da sua API retornar um tipo de outro pacote, exporte esse tipo novamente para que os consumidores não precisem de uma dependência separada apenas para nomeá-lo. Assim, a superfície pública permanece autossuficiente.

Documentando a superfície

Adicione comentários JSDoc aos símbolos exportados. Como apenas os itens da API pública ficam visíveis para os consumidores, documentá-los oferece IntelliSense e orientações claras de uso.

Verificação rápida

O que define o que os consumidores podem importar?

Recapitulação

A API pública é selecionada em public-api.ts, que exporta novamente componentes, tipos e tokens; todo o restante permanece privado e pode ser refatorado. Use pontos de entrada secundários para bibliotecas grandes, aponte ng-package.json para o arquivo de entrada, evite importações profundas e trate a superfície como um contrato estável e documentado.

Perguntas Frequentes

A aula “API pública e pontos de entrada” é grátis?

Sim — o texto completo de “API pública e pontos de entrada” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Angular Academy, atualize para CoddyKit PRO. O curso de Angular Academy inclui 4 aulas no total.

O que vou aprender em “API pública e pontos de entrada”?

Projete uma interface pública de biblioteca organizada. Você pratica Angular Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Angular Academy?

Nenhuma experiência prévia é necessária. Angular Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 2 de 4.

Quanto tempo leva a aula “API pública e pontos de entrada”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Angular Academy?

Sim. Cada aula de Angular Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Criando uma biblioteca com ng generate
  2. API pública e pontos de entrada
  3. Criando com ng-packagr
  4. Publicando no npm
← Voltar para Angular Academy