0Pricing
Angular Academy · Lezione

API pubblica ed entry point

Progettare una superficie della libreria chiara

API pubblica ed entry point è una lezione Angular Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Angular Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Angular Academy include 4 lezioni in totale.

La superficie dell'API pubblica

Una libreria dovrebbe esporre solo ciò che i consumer devono utilizzare. L'API pubblica è l'insieme curato degli export; tutto il resto rimane interno. Nelle librerie Angular questa superficie è definita da public-api.ts.

public-api.ts come barrel

public-api.ts riesporta i simboli a cui si desidera dare accesso ai consumer. Se qualcosa non viene esportato qui, è di fatto privato, anche se esiste nel codice sorgente.

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

Perché nascondere gli elementi interni

Mantenere privati gli helper consente di rifattorizzarli liberamente senza interrompere i consumer. Un'API pubblica ridotta e intenzionale è più facile da documentare, versionare e mantenere rispetto all'esportazione indiscriminata di tutto.

Esportare tipi e token

L'API pubblica include non solo i componenti, ma anche le interfacce, i tipi e i token di injection di cui i consumer hanno bisogno per utilizzarli correttamente.

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

Entry point secondari

Le librerie di grandi dimensioni si suddividono in entry point secondari, così i consumer importano solo ciò di cui hanno bisogno, migliorando il tree-shaking. Ad esempio, ui-kit/testing separato da ui-kit.

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

Creare un entry point secondario

Un entry point secondario è una sottocartella con il proprio ng-package.json e public-api.ts. ng-packagr lo individua automaticamente e lo compila come percorso di import separato.

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

Mappatura dell'entry point principale

Il ng-package.json della libreria associa entryFile a public-api.ts, indicando al build quale file costituisce la superficie pubblica principale.

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

Progettare pensando alla stabilità

Consideri l'API pubblica come un contratto: rimuovere o rinominare un export è una breaking change. Aggiunga liberamente nuovi export, ma li contrassegni come deprecati prima di rimuoverli, così i consumer avranno il tempo di migrare.

Evitare gli import profondi

Poiché solo public-api.ts costituisce il contratto, i consumer non dovrebbero mai effettuare import profondi di percorsi interni come ui-kit/lib/button/internal. L'esportazione tramite il barrel mantiene un'unica superficie di import stabile.

Riesportare tipi di terze parti

Se un metodo della sua API restituisce un tipo proveniente da un altro pacchetto, riesporti quel tipo, così i consumer non avranno bisogno di una dipendenza aggiuntiva solo per poterlo indicare. In questo modo la superficie pubblica rimane autosufficiente.

Documentare la superficie

Aggiunga commenti JSDoc ai simboli esportati. Poiché ai consumer sono visibili solo gli elementi della public API, documentarli fornisce IntelliSense e indicazioni chiare sul loro utilizzo.

Verifica rapida

Che cosa definisce ciò che i consumer possono importare?

Riepilogo

L'API pubblica viene curata in public-api.ts, che riesporta componenti, tipi e token; tutto il resto rimane privato e può essere rifattorizzato. Utilizzi entry point secondari per le librerie di grandi dimensioni, punti ng-package.json al file di entry, eviti gli import profondi e consideri la superficie come un contratto stabile e documentato.

Domande Frequenti

La lezione «API pubblica ed entry point» è gratuita?

Sì — il testo completo di «API pubblica ed entry point» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Angular Academy, passa a CoddyKit PRO. Il corso Angular Academy include 4 lezioni in totale.

Cosa imparerò in «API pubblica ed entry point»?

Progettare una superficie della libreria chiara Eserciti Angular Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Angular Academy?

Non è richiesta alcuna esperienza precedente. Angular Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «API pubblica ed entry point»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Angular Academy?

Sì. Ogni lezione Angular Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Creare una libreria con ng generate
  2. API pubblica ed entry point
  3. Creare build con ng-packagr
  4. Pubblicare su npm
← Torna a Angular Academy