Suche
Es ist möglich, mithilfe der V3-API nach Paketen zu suchen, die in einer Paketquelle verfügbar sind. Die Ressource, die zum Erstellen von AutoVervollständigen-Abfragen verwendet wird, ist die SearchQueryService
-Ressource im Dienstindex.
Versionsverwaltung
Die folgenden @type
-Werte werden verwendet:
Wert vom Typ @type | Hinweise |
---|---|
SearchQueryService | Erstrelease |
SearchQueryService/3.0.0-beta | Alias von SearchQueryService |
SearchQueryService/3.0.0-rc | Alias von SearchQueryService |
SearchQueryService/3.5.0 | Umfasst Unterstützung für den packageType -Abfrageparameter |
SearchQueryService/3.5.0
Diese Version führt Unterstützung für den Abfrageparameter packageType
und die Antworteigenschaft packageTypes
ein, die eine Filterung nach vom Autor definierten Pakettypen ermöglicht. Sie ist vollständig abwärtskompatibel mit Abfragen für SearchQueryService
.
Basis-URL
Die Basis-URL für die folgenden APIs ist der Wert der @id
-Eigenschaft, die einem der oben genannten @type
-Ressourcenwerte zugeordnet ist. Im folgenden Dokument wird die Platzhalter-Basis-URL {@id}
verwendet. Die Basis-URL kann sich basierend auf Implementierungs- oder Infrastrukturänderungen innerhalb der Paketquelle ändern, sodass sie dynamisch vom Dienstindex der Clientsoftware abgerufen werden muss.
HTTP-Methoden
Alle URLs in der Registrierungsressource unterstützen die HTTP-Methoden GET
und HEAD
.
Suche nach Paketen
Die Such-API ermöglicht es einem Client, eine Seite mit Paketen abzufragen, die einer angegebenen Suchabfrage entsprechen. Die Interpretation der Suchabfrage (z. B. die Tokenisierung der Suchbegriffe) wird von der Serverimplementierung bestimmt, aber die allgemeine Erwartung besteht darin, dass die Suchabfrage für übereinstimmende Paket-IDs, Titel, Beschreibungen und Tags verwendet wird. Andere Paketmetadatenfelder können ebenfalls berücksichtigt werden.
Ein nicht aufgelistetes Paket sollte niemals in Suchergebnissen angezeigt werden.
GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}
Anforderungsparameter
Name | Geben Sie in | Type | Erforderlich | Hinweise |
---|---|---|---|---|
q | URL | Zeichenfolge | Nein | Die Suchbegriffe zum Filtern von Paketen |
skip | URL | integer | Nein | Die Anzahl der zu überspringenden Ergebnisse für die Paginierung |
take | URL | integer | Nein | Die Anzahl der zurückzugebenden Ergebnisse für die Paginierung |
Vorabversion | URL | boolean | Nein | true oder false zum Festlegen, ob Vorabversionen von Paketen zu berücksichtigen sind |
semVerLevel | URL | Zeichenfolge | Nein | Eine SemVer 1.0.0-Versionszeichenfolge |
packageType | URL | Zeichenfolge | Nein | Der Pakettyp, der zum Filtern von Paketen verwendet werden soll (hinzugefügt in SearchQueryService/3.5.0 ) |
Die Suchabfrage q
wird gemäß der Definition in der Serverimplementierung analysiert. nuget.org unterstützt grundlegende Filterung auf eine Vielzahl von Feldern. Wenn keine q
bereitgestellt wird, sollten alle Pakete innerhalb der Grenzen zurückgegeben werden, die durch Überspringen und Übernehmen auferlegt werden. Dadurch wird die Registerkarte "Durchsuchen" in der Visual Studio-Benutzeroberfläche von NuGet aktiviert.
Der Parameter skip
lautet standardmäßig 0.
Der Parameter take
sollte eine ganze Zahl größer null sein. Für die Serverimplementierung gilt möglicherweise ein Höchstwert.
Hinweis
nuget.org beschränkt den skip
Parameter auf 3.000 und den take
Parameter auf 1.000.
Wenn prerelease
nicht angegeben wird, werden Vorabversionspakete ausgeschlossen.
Der semVerLevel
-Abfrageparameter wird verwendet, um SemVer 2.0.0-Pakete zu ermöglichen.
Wenn dieser Abfrageparameter ausgeschlossen wird, werden nur Paket-IDs mit Versionen zurückgegeben, die mit SemVer 1.0.0 kompatibel sind. (Hierfür gelten die Einschränkungen der NuGet-Standardversionsverwaltung, z. B. Versionszeichenfolgen aus vier ganzzahligen Teilen).
Wenn semVerLevel=2.0.0
angegeben wird, werden sowohl mit SemVer 1.0.0 als auch mit SemVer 2.0.0 kompatible Pakete zurückgegeben. Weitere Informationen finden Sie unter SemVer 2.0.0-Unterstützung für nuget.org.
Anhand des packageType
-Parameters werden die Suchergebnisse weiter nach Paketen gefiltert, die mindestens einen Pakettyp aufweisen, der mit dem Pakettypnamen übereinstimmt.
Wenn der angegebene Pakettyp kein gültiger Pakettyp im Sinne der Definition im Dokument zu Pakettypen ist, wird ein leeres Ergebnis zurückgegeben.
Wenn der angegebene Pakettyp leer ist, wird kein Filter angewendet. Mit anderen Worten, wenn dem packageType-Parameter kein Wert übergeben wird, verhält er sich so, als wäre der Parameter nicht übergeben worden.
Antwort
Die Antwort ist ein JSON-Dokument, das bis zu take
AutoVervollständigen-Ergebnisse enthält. Suchergebnisse werden nach Paket-ID gruppiert.
Das JSON-Stammobjekt weist die folgenden Eigenschaften auf:
Name | Type | Erforderlich | Hinweise |
---|---|---|---|
totalHits | integer | ja | Die Gesamtanzahl der Übereinstimmungen ohne Berücksichtigung von skip und take |
data | Array von Objekten | ja | Die Suchergebnisse, die von der Anforderung abgeglichen werden |
Suchergebnis
Jeder Artikel im data
Array ist ein JSON-Objekt, das aus einer Gruppe von Paketversionen besteht, die dieselbe Paket-ID gemeinsam nutzen.
Das -Objekt weist die folgenden Eigenschaften auf:
Name | Type | Erforderlich | Hinweise |
---|---|---|---|
id | Zeichenfolge | ja | Die ID des übereinstimmenen Pakets |
version | Zeichenfolge | ja | Die vollständige SemVer 2.0.0-Versionszeichenfolge des Pakets (kann Buildmetadaten enthalten) |
Beschreibung | Zeichenfolge | Nein | |
versions | Array von Objekten | ja | Alle Versionen des Pakets, die dem prerelease Parameter entsprechen |
authors | Zeichenfolge oder Array von Zeichenfolgen | Nein | |
iconUrl | Zeichenfolge | Nein | |
licenseUrl | Zeichenfolge | Nein | |
Besitzer | Zeichenfolge oder Array von Zeichenfolgen | Nein | Eine Zeichenkette stellt den Nutzernamen eines einzelnen Besitzers dar. |
projectUrl | Zeichenfolge | Nein | |
Registrierung | Zeichenfolge | Nein | Die absolute URL zum zugeordneten Registrierungsindex |
Zusammenfassung | Zeichenfolge | Nein | |
Tags | Zeichenfolge oder Array von Zeichenfolgen | Nein | |
title | Zeichenfolge | Nein | |
totalDownloads | integer | Nein | Dieser Wert kann durch die Summe der Downloads im versions Array abgeleitet werden |
überprüft | boolean | Nein | Ein boole'scher JSON-Wert, der angibt, ob das Paket verifiziert ist |
packageTypes | Array von Objekten | ja | Die vom Paketautor definierten Pakettypen (hinzugefügt in SearchQueryService/3.5.0 ) |
Bei nuget.org ist ein überprüftes Paket ein Paket mit einer Paket-ID, die einem reservierten ID-Präfix entspricht und einem der Besitzer des reservierten Präfixes gehört. Weitere Informationen zu Tags finden Sie in der Dokumentation zum Anwenden von Tags auf Ressourcen.
Die im Suchergebnisobjekt enthaltenen Metadaten stammen aus der neuesten Paketversion. Jeder Artikel im Array versions
ist ein JSON-Objekt mit den folgenden Eigenschaften:
Name | Type | Erforderlich | Hinweise |
---|---|---|---|
@id | Zeichenfolge | ja | Die absolute URL zum zugeordneten Registrierungsblatt |
version | Zeichenfolge | ja | Die vollständige SemVer 2.0.0-Versionszeichenfolge des Pakets (kann Buildmetadaten enthalten) |
Downloads | integer | ja | Die Anzahl der Downloads für diese bestimmte Paketversion |
Das packageTypes
Array besteht immer aus mindestens einem (1) Artikel. Der Pakettyp für eine bestimmte Paket-ID gilt als die Pakettypen, die von der neuesten Version des Pakets in Bezug auf die anderen Suchparameter definiert werden. Jeder Artikel im Array packageTypes
ist ein JSON-Objekt mit den folgenden Eigenschaften:
Name | Type | Erforderlich | Hinweise |
---|---|---|---|
name | Zeichenfolge | ja | Der Name des Pakettyps. |
Beispielanforderung
GET https://search-sample.nuget.org/query?q=NuGet.Versioning&prerelease=false&semVerLevel=2.0.0
Stellen Sie sicher, dass Sie die Basis-URL (https://search-sample.nuget.org/query
in diesem Beispiel) aus dem Dienstindex abrufen, wie im Basis-URL-Abschnitt Erwähnung.
Beispielantwort
{
"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"
}
]
}
]
}