Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile cercare i pacchetti disponibili in un'origine del pacchetto usando l'API V3. La risorsa usata per la ricerca è la SearchQueryService risorsa presente nell'indice del servizio.
Versionamento
Vengono usati i valori seguenti @type :
| Valore @type | Note |
|---|---|
| SearchQueryService | Versione iniziale |
| SearchQueryService/3.0.0-beta | Alias di SearchQueryService |
| SearchQueryService/3.0.0-rc | Alias di SearchQueryService |
| SearchQueryService/3.5.0 | Include il supporto per packageType il parametro di query |
SearchQueryService/3.5.0
Questa versione introduce il supporto per il packageType parametro di query e la packageTypes proprietà di risposta, consentendo il filtro in base ai tipi di pacchetto definiti dall'autore. È completamente compatibile con le versioni precedenti con le query su SearchQueryService.
URL di base
L'URL di base per l'API seguente è il valore della @id proprietà associata a uno dei valori di risorsa indicati in precedenza @type . Nel documento seguente verrà usato l'URL {@id} di base segnaposto. L'URL di base può cambiare in base alle modifiche dell'implementazione o dell'infrastruttura all'interno dell'origine del pacchetto, pertanto deve essere recuperato dinamicamente dall'indice del servizio dal software client.
Metodi HTTP
Tutti gli URL trovati nella risorsa di registrazione supportano i metodi GET HTTP e HEAD.
Cercare pacchetti
L'API di ricerca consente a un client di eseguire query per una pagina di pacchetti corrispondente a una query di ricerca specificata. L'interpretazione della query di ricerca (ad esempio, la tokenizzazione dei termini di ricerca) è determinata dall'implementazione del server, ma l'aspettativa generale è che la query di ricerca viene usata per la corrispondenza di ID pacchetto, titoli, descrizioni e tag. È anche possibile prendere in considerazione altri campi di metadati del pacchetto.
Un pacchetto non elencato non dovrebbe mai essere visualizzato nei risultati della ricerca.
GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}
Parametri della richiesta
| Name | In | TIPO | Obbligatorio | Note |
|---|---|---|---|---|
| q | URL | stringa | no | Termini di ricerca da usare per filtrare i pacchetti |
| skip | URL | numero intero | no | Numero di risultati da ignorare per l'impaginazione |
| prendere | URL | numero intero | no | Numero di risultati da restituire per la paginazione |
| versione preliminare | URL | boolean | no |
true o false determinare se includere pacchetti non definitive |
| semVerLevel | URL | stringa | no | Stringa di versione SemVer 1.0.0 |
| tipo di pacchetto | URL | stringa | no | Tipo di pacchetto da usare per filtrare i pacchetti (aggiunti in SearchQueryService/3.5.0) |
La query di q ricerca viene analizzata in modo definito dall'implementazione del server. nuget.org supporta il filtro di base per un'ampia gamma di campi. Se non viene specificato alcun valore q , tutti i pacchetti devono essere restituiti entro i limiti imposti da skip e take. In questo modo viene abilitata la scheda "Sfoglia" nell'esperienza di Visual Studio NuGet.
Per impostazione predefinita, il skip parametro è 0.
Il take parametro deve essere un numero intero maggiore di zero. L'implementazione del server può imporre un valore massimo.
Note
nuget.org limita il skip parametro a 3.000 e il take parametro a 1.000.
Se prerelease non viene specificato, i pacchetti non definitive vengono esclusi.
Il semVerLevel parametro di query viene usato per acconsentire esplicitamente ai pacchetti SemVer 2.0.0.
Se questo parametro di query viene escluso, verranno restituiti solo i pacchetti con versioni compatibili con SemVer 1.0.0 (con le avvertenze standard di controllo delle versioni di NuGet , ad esempio stringhe di versione con 4 parti intere).
Se semVerLevel=2.0.0 viene specificato, verranno restituiti i pacchetti compatibili SemVer 1.0.0 e SemVer 2.0.0. Per altre informazioni, vedere il supporto di SemVer 2.0.0 per nuget.org .
Il packageType parametro viene usato per filtrare ulteriormente i risultati della ricerca solo per i pacchetti con almeno un tipo di pacchetto corrispondente al nome del tipo di pacchetto.
Se il tipo di pacchetto specificato non è un tipo di pacchetto valido come definito dal documento Tipo di pacchetto, verrà restituito un risultato vuoto.
Se il tipo di pacchetto specificato è vuoto, non verrà applicato alcun filtro. In altre parole, il passaggio di nessun valore al parametro packageType si comporta come se il parametro non fosse passato.
risposta
La risposta è un documento JSON contenente fino ai risultati della take ricerca. I risultati della ricerca vengono raggruppati in base all'ID pacchetto.
L'oggetto JSON radice ha le proprietà seguenti:
| Name | TIPO | Obbligatorio | Note |
|---|---|---|---|
| totalHits | numero intero | sì | Numero totale di corrispondenze, ignorare skip e take |
| Dati | matrice di oggetti | sì | Risultati della ricerca corrispondenti alla richiesta |
Risultati della ricerca
Ogni elemento nella data matrice è un oggetto JSON costituito da un gruppo di versioni del pacchetto che condividono lo stesso ID pacchetto.
Di seguito sono elencate le proprietà dell'oggetto :
| Name | TIPO | Obbligatorio | Note |
|---|---|---|---|
| id | stringa | sì | ID del pacchetto corrispondente |
| version | stringa | sì | Stringa di versione completa di SemVer 2.0.0 del pacchetto (potrebbe contenere metadati di compilazione) |
| description | stringa | no | |
| disapprovazione | oggetto | no | Deprecazione associata alla versione più recente del pacchetto |
| versions | matrice di oggetti | sì | Tutte le versioni del pacchetto che corrispondono al prerelease parametro |
| authors | Stringa o matrice di stringhe | no | |
| iconUrl | stringa | no | |
| licenseUrl | stringa | no | |
| Proprietari | Stringa o matrice di stringhe | no | Una stringa rappresenta il nome utente di un singolo proprietario |
| projectUrl | stringa | no | |
| registrazione | stringa | no | URL assoluto dell'indice di registrazione associato |
| summary | stringa | no | |
| tags | Stringa o matrice di stringhe | no | |
| title | stringa | no | |
| totalDownloads | numero intero | no | Questo valore può essere dedotto dalla somma dei download nella versions matrice |
| Verificato | boolean | no | Valore booleano JSON che indica se il pacchetto è verificato |
| Vulnerabilità | matrice di oggetti | no | Vulnerabilità di sicurezza note associate alla versione più recente del pacchetto |
| packageTypes | matrice di oggetti | sì | Tipi di pacchetto definiti dall'autore del pacchetto (aggiunto in SearchQueryService/3.5.0) |
In nuget.org, un pacchetto verificato è uno che ha un ID pacchetto corrispondente a un prefisso ID riservato e di proprietà di uno dei proprietari del prefisso riservato. Per altre informazioni, vedere la documentazione sulla prenotazione del prefisso ID.
I metadati contenuti nell'oggetto risultato della ricerca provengono dalla versione più recente del pacchetto. Ogni elemento nella versions matrice è un oggetto JSON con le proprietà seguenti:
| Name | TIPO | Obbligatorio | Note |
|---|---|---|---|
| @id | stringa | sì | URL assoluto della foglia di registrazione associata |
| version | stringa | sì | Stringa di versione completa di SemVer 2.0.0 del pacchetto (potrebbe contenere metadati di compilazione) |
| scaricamenti | numero intero | sì | Numero di download per questa versione specifica del pacchetto |
Obsolescenza del pacchetto
L'oggetto deprecation ha le proprietà seguenti:
| Name | TIPO | Obbligatorio | Note |
|---|---|---|---|
| Motivi | matrice di stringhe | sì | I motivi per cui il pacchetto è stato deprecato |
| message | stringa | no | Dettagli aggiuntivi sulla deprecazione |
| alternatePackage | oggetto | no | Pacchetto alternativo da usare |
La reasons matrice contiene almeno uno dei valori documentati in Deprecazione pacchetto.
L'oggetto alternatePackage ha le proprietà seguenti:
| Name | TIPO | Obbligatorio | Note |
|---|---|---|---|
| id | stringa | sì | ID del pacchetto alternativo |
| intervallo | stringa | no | Intervallo di versioni consentito o * se è consentita una versione |
Vulnerabilità
Ogni elemento nella vulnerabilities matrice è un oggetto JSON con le proprietà seguenti:
| Name | TIPO | Obbligatorio | Note |
|---|---|---|---|
| advisoryUrl | stringa | sì | URL dell'avviso di sicurezza per il pacchetto |
| Gravità | numero intero | sì | Gravità dell'avviso: 0 = Bassa, 1 = Moderata, 2 = Alta e 3 = Critica |
La matrice è vuota quando la versione più recente del pacchetto non presenta vulnerabilità note.
La packageTypes matrice sarà sempre costituita da almeno un elemento (1). Il tipo di pacchetto per un DETERMINATO ID pacchetto viene considerato come i tipi di pacchetto definiti dalla versione più recente del pacchetto rispetto agli altri parametri di ricerca. Ogni elemento nella packageTypes matrice è un oggetto JSON con le proprietà seguenti:
| Name | TIPO | Obbligatorio | Note |
|---|---|---|---|
| nome | stringa | sì | Nome del tipo di pacchetto. |
Esempio di richiesta
GET https://search-sample.nuget.org/query?q=NuGet.Versioning&prerelease=false&semVerLevel=2.0.0
Assicurarsi di recuperare l'URL di base (https://search-sample.nuget.org/query in questo esempio) dall'indice del servizio, come indicato nella sezione URL di base .
Risposta di esempio
{
"totalHits": 2,
"data": [
{
"registration": "https://api.nuget.org/v3/registration-sample/nuget.versioning/index.json",
"id": "NuGet.Versioning",
"version": "4.4.0",
"description": "NuGet's implementation of Semantic Versioning.",
"summary": "",
"title": "NuGet.Versioning",
"licenseUrl": "https://raw.githubusercontent.com/NuGet/NuGet.Client/dev/LICENSE.txt",
"tags": [ "semver", "semantic", "versioning" ],
"authors": [ "NuGet" ],
"totalDownloads": 141896,
"verified": true,
"vulnerabilities": [],
"packageTypes": [
{
"name": "Dependency"
}
],
"versions": [
{
"version": "3.3.0",
"downloads": 50343,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/3.3.0.json"
},
{
"version": "3.4.3",
"downloads": 27932,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/3.4.3.json"
},
{
"version": "4.0.0",
"downloads": 63004,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/4.0.0.json"
},
{
"version": "4.4.0",
"downloads": 617,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/4.4.0.json"
}
]
},
{
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/index.json",
"@type": "Package",
"registration": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/index.json",
"id": "Nerdbank.GitVersioning",
"version": "2.0.41",
"description": "Stamps your assemblies with semver 2.0 compliant git commit specific version information and provides NuGet versioning information as well.",
"summary": "Stamps your assemblies with semver 2.0 compliant git commit specific version information and provides NuGet versioning information as well.",
"title": "Nerdbank.GitVersioning",
"licenseUrl": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/ed547462f7/LICENSE.txt",
"projectUrl": "http://github.com/aarnott/Nerdbank.GitVersioning",
"tags": [ "git", "commit", "versioning", "version", "assemblyinfo" ],
"authors": [ "Andrew Arnott" ],
"totalDownloads": 11906,
"verified": false,
"vulnerabilities": [],
"versions": [
{
"version": "1.6.35",
"downloads": 10229,
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/1.6.35.json"
},
{
"version": "2.0.41",
"downloads": 1677,
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/2.0.41.json"
}
]
}
]
}