API pública y entry points
Diseñar una superficie de biblioteca clara
API pública y entry points es una lección gratuita de Angular Academy en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de Angular Academy, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de Angular Academy incluye 4 lecciones en total.
La superficie de la API pública
Una biblioteca solo debe exponer aquello que los consumidores deben utilizar. La API pública es el conjunto seleccionado de exportaciones; todo lo demás permanece interno. En las bibliotecas de Angular, esta superficie se define mediante public-api.ts.
public-api.ts como barrel
public-api.ts vuelve a exportar los símbolos a los que desea dar acceso a los consumidores. Si algo no se exporta aquí, es efectivamente privado, aunque exista en el código fuente.
// projects/ui-kit/src/public-api.ts
export * from './lib/button/button.component';
export * from './lib/theme.service';
// internal helpers are intentionally NOT exportedPor qué ocultar los elementos internos
Mantener los helpers privados le permite refactorizarlos libremente sin romper a los consumidores. Una API pública pequeña y deliberada es más fácil de documentar, versionar y mantener que una en la que se exporta todo.
Exportar tipos y tokens
La API pública no incluye únicamente componentes, sino también las interfaces, los tipos y los tokens de inyección que los consumidores necesitan para utilizarlos correctamente.
export { ButtonComponent } from './lib/button/button.component';
export type { ButtonVariant } from './lib/button/button.types';
export { THEME_CONFIG } from './lib/theme.tokens';Puntos de entrada secundarios
Las bibliotecas grandes se dividen en puntos de entrada secundarios para que los consumidores importen solo lo que necesitan (mejor tree-shaking). Por ejemplo, ui-kit/testing separado de ui-kit.
import { ButtonComponent } from 'ui-kit';
import { provideUiKitTesting } from 'ui-kit/testing';Crear un punto de entrada secundario
Un punto de entrada secundario es una subcarpeta con su propio ng-package.json y public-api.ts. ng-packagr lo detecta automáticamente y lo compila como una ruta de importación independiente.
projects/ui-kit/
testing/
ng-package.json # marks a secondary entry point
src/public-api.tsMapeo del punto de entrada principal
El ng-package.json de la biblioteca establece entryFile como public-api.ts, lo que indica a la compilación qué archivo constituye la superficie pública principal.
// projects/ui-kit/ng-package.json
{
"lib": { "entryFile": "src/public-api.ts" }
}Diseñar para la estabilidad
Trate la API pública como un contrato: eliminar o cambiar el nombre de una exportación es un cambio incompatible. Puede añadir nuevas exportaciones libremente, pero márquelas como obsoletas antes de eliminarlas para dar tiempo a los consumidores a migrar.
Evitar las importaciones profundas
Dado que solo public-api.ts constituye el contrato, los consumidores nunca deben importar rutas internas directamente, como ui-kit/lib/button/internal. Exportar mediante el barrel mantiene una única superficie de importación estable.
Volver a exportar tipos de terceros
Si un método de su API devuelve un tipo de otro paquete, vuelva a exportar ese tipo para que los consumidores no necesiten una dependencia adicional solo para poder nombrarlo. Así, la superficie pública se mantiene autosuficiente.
Documentar la superficie
Añada comentarios JSDoc a los símbolos exportados. Como los consumidores solo pueden ver los elementos de public-api, documentarlos les proporciona IntelliSense y unas instrucciones de uso claras.
Comprobación rápida
¿Qué define lo que pueden importar los consumidores?
Recapitulación
La API pública se selecciona en public-api.ts, que vuelve a exportar componentes, tipos y tokens; todo lo demás permanece privado y se puede refactorizar. Use puntos de entrada secundarios para las bibliotecas grandes, indique el archivo de entrada en ng-package.json, evite las importaciones profundas y trate la superficie como un contrato estable y documentado.
Preguntas frecuentes
¿La lección «API pública y entry points» es gratis?
Sí — el texto completo de «API pública y entry points» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de Angular Academy, actualiza a CoddyKit PRO. El curso de Angular Academy incluye 4 lecciones en total.
¿Qué aprenderé en «API pública y entry points»?
Diseñar una superficie de biblioteca clara Practicas Angular Academy con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar Angular Academy?
No se requiere experiencia previa. Angular Academy en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.
¿Cuánto tiempo toma la lección «API pública y entry points»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de Angular Academy?
Sí. Cada lección de Angular Academy incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- Crear una biblioteca con ng generate
- API pública y entry points
- Crear builds con ng-packagr
- Publicar en npm