Cosa significa API pubblica nella Specifica di Versioning semantica

1

Tutto, abbiamo bisogno di una convenzione per assegnare un numero di versione per il nostro prodotto. Dopo aver fatto ricerche. Ho trovato questo post ha risposto alla mia domanda. E mi porta al link , The Semantic Versioning Specification.

Penso che quasi tutto nel Semantic Versioning abbia senso per me. Ma solo una cosa che non ho capito. Nella Semantic Versioning Specification regola n. 1 . Si prega di aiutare a rivederlo.

Software using Semantic Versioning MUST declare a public API.

Non riesco a capire cosa significa API pubblica.

Nei nostri prodotti. Abbiamo tutti i tipi di software di formattazione. come programma eseguibile, libreria, sito web ecc. Alcuni di essi senza API pubblica, come il programma eseguibile. IMO, penso che l'API pubblica significhi alcuni metodi o funzioni pubblici che possono essere referenziati e chiamati da altri software. come Fo-Dicom che è una libreria di classi, può essere referenziata da un altro progetto. Senza interfaccia grafica. Basta fornire un gruppo di API per gestire il file DICOM basato su .Net Framework. Quindi la mia domanda è cosa significa esattamente Public API nel Semantic Versioning ? Che tipo di prodotti non sono adatti per Semantic Versioning ? Grazie.

    
posta Joe.wang 21.08.2017 - 08:57
fonte

2 risposte

1

Secondo la loro definizione, la versione principale dovrebbe cambiare ogni volta che apporti una modifica che rende l'API pubblica incompatibile con la vecchia versione. Preso alla lettera, qualcosa senza un'API pubblica non può avere un significativo numero di versione principale.

Qualsiasi libreria deve avere un'API - è l'insieme di funzioni che la libreria espone ai suoi utenti. I programmi della riga di comando hanno effettivamente un'API nel set di parametri della riga di comando. Alcuni altri eseguibili hanno un modo per guidarli da remoto, ad esempio tramite un collegamento di rete. Non penso che sia importante preoccuparsi esattamente di cosa intendi con "API".

L'importante è che dovresti considerare una versione principale come qualsiasi che renda la compatibilità con una versione precedente. Ciò potrebbe includere modifiche nei file che il software legge o scrive.

    
risposta data 21.08.2017 - 09:27
fonte
3

La tua comprensione dell'API pubblica è corretta: l'API pubblica è tutto ciò che viene utilizzato da un altro software al di fuori del controllo diretto del tuo team (ad esempio in un altro ciclo di rilascio). Questo può essere applicato a qualsiasi cosa, da classi o metodi a configurazione, servizi Web, indirizzi server o altro.

Il versioning semantico è un metodo di gestione delle dipendenze, quindi assume altri componenti software che dipendono dalla tua API pubblica. La regola n. 1 ti chiede di identificare queste parti del tuo software e renderle esplicite. Se il tuo software non ha tali parti, non hai bisogno di una versione semantica del software, ma può comunque essere una buona idea, come potrebbe interessare ai tuoi utenti.

    
risposta data 12.09.2017 - 07:49
fonte

Leggi altre domande sui tag