Ricerca
È 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.
Controllo delle versioni
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
Nome | Tra | Type | Obbligatorio | Note |
---|---|---|---|---|
q | URL | string | no | Termini di ricerca da usare per filtrare i pacchetti |
skip | URL | integer | no | Numero di risultati da ignorare per l'impaginazione |
take | URL | integer | no | Numero di risultati da restituire per la paginazione |
pre-release | URL | boolean | no | true o false determinare se includere pacchetti non definitive |
semVerLevel | URL | string | no | Stringa di versione SemVer 1.0.0 |
packageType | URL | string | 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.
Nota
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.
Response
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:
Nome | Digita | Obbligatorio | Note |
---|---|---|---|
totalHits | integer | yes | Numero totale di corrispondenze, ignorare skip e take |
data | matrice di oggetti | yes | Risultati della ricerca corrispondenti alla richiesta |
Risultato 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 :
Nome | Digita | Obbligatorio | Note |
---|---|---|---|
id | string | yes | ID del pacchetto corrispondente |
versione | string | yes | Stringa di versione completa di SemVer 2.0.0 del pacchetto (potrebbe contenere metadati di compilazione) |
description | stringa | no | |
versions | matrice di oggetti | yes | Tutte le versioni del pacchetto che corrispondono al prerelease parametro |
authors | Stringa o matrice di stringhe | no | |
iconUrl | string | no | |
licenseUrl | string | no | |
owners | Stringa o matrice di stringhe | no | Una stringa rappresenta il nome utente di un singolo proprietario |
projectUrl | string | no | |
registrazione | string | no | URL assoluto dell'indice di registrazione associato |
riepilogo | string | no | |
tag | Stringa o matrice di stringhe | no | |
title | string | no | |
totalDownloads | integer | 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 |
packageTypes | matrice di oggetti | yes | 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:
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:
Nome | Digita | Obbligatorio | Note |
---|---|---|---|
name | string | yes | 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,
"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,
"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"
}
]
}
]
}