Protocolli di nuget.org

Per interagire con nuget.org, i client devono seguire determinati protocolli. Poiché questi protocolli continuano a evolversi, i client devono identificare la versione del protocollo usata per chiamare API nuget.org specifiche. Ciò consente nuget.org di introdurre modifiche in modo non di rilievo per i vecchi client.

Nota

Le API documentate in questa pagina sono specifiche per nuget.org e non ci sono aspettative per altre implementazioni del server NuGet per introdurre queste API.

Per informazioni sull'API NuGet implementata su vasta scala nell'ecosistema NuGet, vedere la panoramica dell'API.

In questo argomento vengono elencati i vari protocolli come e quando vengono esistenti.

Protocollo NuGet versione 4.1.0

Il protocollo 4.1.0 specifica l'utilizzo delle chiavi di ambito di verifica per interagire con i servizi diversi da nuget.org, per convalidare un pacchetto rispetto a un account nuget.org. Si noti che il 4.1.0 numero di versione è una stringa opaca, ma coincide con la prima versione del client NuGet ufficiale che supporta questo protocollo.

La convalida garantisce che le chiavi API create dall'utente vengano usate solo con nuget.org e che altre verifiche o convalide di un servizio di terze parti vengano gestite tramite chiavi di ambito di verifica monouso. Queste chiavi di ambito di verifica possono essere usate per verificare che il pacchetto appartenga a un determinato utente (account) in nuget.org.

Requisito client

I client devono passare l'intestazione seguente quando effettuano chiamate API per eseguire il push dei pacchetti a nuget.org:

X-NuGet-Protocol-Version: 4.1.0

Si noti che l'intestazione X-NuGet-Client-Version ha una semantica simile, ma è riservata solo all'uso da parte del client NuGet ufficiale. I client di terze parti devono usare l'intestazione e il X-NuGet-Protocol-Version valore.

Il protocollo push stesso è descritto nella documentazione per la PackagePublish risorsa.

Se un client interagisce con i servizi esterni e deve verificare se un pacchetto appartiene a un determinato utente (account), deve usare il protocollo seguente e usare le chiavi di ambito di verifica e non le chiavi API di nuget.org.

API per richiedere una chiave di ambito di verifica

Questa API viene usata per ottenere una chiave di ambito di verifica per un autore di nuget.org per convalidare un pacchetto di proprietà di lui/lei.

POST api/v2/package/create-verification-key/{ID}/{VERSION}

Parametri della richiesta

Nome Tra Type Obbligatorio Note
ID URL string yes Iddentidier del pacchetto per il quale è richiesta la chiave di ambito di verifica
VERSION URL string no Versione del pacchetto
X-NuGet-ApiKey Intestazione string yes Ad esempio, X-NuGet-ApiKey: {USER_API_KEY}

Response

{
    "Key": "{Verify scope key from nuget.org}",
    "Expires": "{Date}"
}

API per verificare la chiave di ambito di verifica

Questa API viene usata per convalidare una chiave di ambito di verifica per il pacchetto di proprietà dell'autore nuget.org.

GET api/v2/verifykey/{ID}/{VERSION}

Parametri della richiesta

Nome Tra Type Obbligatorio Note
ID URL string yes Identificatore del pacchetto per il quale viene richiesta la chiave di ambito di verifica
VERSION URL string no Versione del pacchetto
X-NuGet-ApiKey Intestazione string yes Ad esempio, X-NuGet-ApiKey: {VERIFY_SCOPE_KEY}

Nota

Questa verifica che la chiave API dell'ambito scada in base all'ora di un giorno o al primo utilizzo, a seconda di quale condizione si verifica per prima.

Response

Codice di stato Significato
200 La chiave API è valida
403 La chiave API non è valida o non è autorizzata a eseguire il push nel pacchetto
404 Il pacchetto a cui ID fa riferimento e VERSION (facoltativo) non esiste