Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Es ist möglich, mithilfe der V3-API nach Paketen zu suchen, die in einer Paketquelle verfügbar sind. Die ressource, die für die Suche verwendet wird, ist die Ressource, die SearchQueryService im Dienstindex gefunden wird.
Versioning
Die folgenden @type Werte werden verwendet:
| @type Wert | Hinweise |
|---|---|
| SearchQueryService | Die erste Version |
| SearchQueryService/3.0.0-beta | Alias von SearchQueryService |
| SearchQueryService/3.0.0-rc | Alias von SearchQueryService |
| SearchQueryService/3.5.0 | Enthält Unterstützung für packageType Abfrageparameter |
SearchQueryService/3.5.0
In dieser Version wird die Unterstützung für den packageType Abfrageparameter und die packageTypes Antworteigenschaft eingeführt, wodurch das Filtern nach definierten Pakettypen durch Autor ermöglicht wird. Es ist vollständig abwärtskompatibel mit Abfragen zu SearchQueryService.
Basis-URL
Die Basis-URL für die folgende API ist der Wert der Eigenschaft, die @id einem der oben genannten Ressourcenwerte @type zugeordnet ist. Im folgenden Dokument wird die Platzhalterbasis-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, die in der Registrierungsressource gefunden werden, unterstützen die HTTP-Methoden GET und HEAD.
Nach Paketen suchen
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 | In | Typ | Erforderlich | Hinweise |
|---|---|---|---|---|
| q | URL | string | nein | Die Suchbegriffe zum Filtern von Paketen |
| skip | URL | integer | nein | Die Anzahl der zu überspringenden Ergebnisse für die Paginierung |
| nehmen | URL | integer | nein | Die Anzahl der zurückzugebenden Ergebnisse für die Paginierung |
| Vorabrelease | URL | Boolescher Wert | nein |
trueoder false bestimmen, ob Vorabversionspakete eingeschlossen werden sollen |
| semVerLevel | URL | string | nein | Eine SemVer 1.0.0-Versionszeichenfolge |
| Pakettentyp | URL | string | nein | Der Pakettyp zum Filtern von Paketen (hinzugefügt in SearchQueryService/3.5.0) |
Die Suchabfrage q wird auf eine Weise analysiert, die von der Serverimplementierung definiert wird. nuget.org unterstützt grundlegende Filterung für 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 NuGet-Visual Studio-Oberfläche aktiviert.
Der skip Parameter ist standardmäßig auf 0 festgelegt.
Der take Parameter sollte eine ganze Zahl größer als Null sein. Die Serverimplementierung kann einen Maximalwert erzwingen.
Note
nuget.org beschränkt den skip Parameter auf 3.000 und den take Parameter auf 1.000.
Falls prerelease nicht angegeben, werden Vorabpakete ausgeschlossen.
Der semVerLevel Abfrageparameter wird verwendet, um SemVer 2.0.0-Pakete zu aktivieren.
Wenn dieser Abfrageparameter ausgeschlossen ist, werden nur Pakete mit semVer 1.0.0 kompatiblen Versionen zurückgegeben (mit den standardmäßigen Einschränkungen für die NuGet-Versionsverwaltung , z. B. Versionszeichenfolgen mit 4 ganzzahligen Teilen).
Falls semVerLevel=2.0.0 angegeben, werden sowohl semVer 1.0.0- als auch SemVer 2.0.0-kompatible Pakete zurückgegeben. Weitere Informationen finden Sie in der SemVer 2.0.0-Unterstützung für nuget.org .
Der packageType Parameter wird verwendet, um die Suchergebnisse weiter auf Pakete zu filtern, die mindestens einen Pakettyp aufweisen, der dem Pakettypnamen entspricht.
Wenn der angegebene Pakettyp kein gültiger Pakettyp ist, der durch das Dokument "Pakettyp" definiert ist, wird ein leeres Ergebnis zurückgegeben.
Wenn der angegebene Pakettyp leer ist, wird kein Filter angewendet. Anders ausgedrückt verhält sich das Übergeben eines Werts an den packageType-Parameter so, als ob der Parameter nicht übergeben wurde.
Antwort
Die Antwort ist ein JSON-Dokument, das bis zu take Suchergebnissen enthält. Suchergebnisse werden nach Paket-ID gruppiert.
Das JSON-Stammobjekt weist die folgenden Eigenschaften auf:
| Name | Typ | Erforderlich | Hinweise |
|---|---|---|---|
| totalHits | integer | yes | Die Gesamtanzahl der Übereinstimmungen, missachtet skip und take |
| data | Objekt-Array | yes | Die Suchergebnisse, die von der Anforderung abgeglichen werden |
Suchergebnis
Jedes Element 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 | Typ | Erforderlich | Hinweise |
|---|---|---|---|
| id | string | yes | Die ID des übereinstimmenen Pakets |
| version | string | yes | Die vollständige SemVer 2.0.0-Versionszeichenfolge des Pakets (kann Buildmetadaten enthalten) |
| description | string | nein | |
| Abgeschwächt | Objekt | nein | Die Veraltetkeit, die der neuesten Paketversion zugeordnet ist |
| Versionen | Objekt-Array | yes | Alle Versionen des Pakets, die dem prerelease Parameter entsprechen |
| Autoren | Zeichenfolge oder Array von Zeichenfolgen | nein | |
| iconUrl | string | nein | |
| Lizenz-URL | string | nein | |
| owners | Zeichenfolge oder Array von Zeichenfolgen | nein | Eine Zeichenfolge stellt den Benutzernamen eines einzelnen Besitzers dar. |
| Projekt-URL | string | nein | |
| Registrierung | string | nein | Die absolute URL zum zugeordneten Registrierungsindex |
| summary | string | nein | |
| tags | Zeichenfolge oder Array von Zeichenfolgen | nein | |
| title | string | nein | |
| totalDownloads | integer | nein | Dieser Wert kann durch die Summe der Downloads im versions Array abgeleitet werden. |
| Überprüft | Boolescher Wert | nein | Ein BOOLESCHER JSON-Wert, der angibt, ob das Paket überprüft wird |
| Schwachstellen | Objekt-Array | nein | Die bekannten Sicherheitsrisiken, die der neuesten Paketversion zugeordnet sind |
| packageTypes | Objekt-Array | yes | 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 finden Sie in der Dokumentation zur Reservierung von ID-Präfixen.
Die im Suchergebnisobjekt enthaltenen Metadaten stammen aus der neuesten Paketversion. Jedes Element im versions Array ist ein JSON-Objekt mit den folgenden Eigenschaften:
| Name | Typ | Erforderlich | Hinweise |
|---|---|---|---|
| @id | string | yes | Die absolute URL zum zugeordneten Registrierungsblatt |
| version | string | yes | Die vollständige SemVer 2.0.0-Versionszeichenfolge des Pakets (kann Buildmetadaten enthalten) |
| Downloads | integer | yes | Die Anzahl der Downloads für diese bestimmte Paketversion |
Paketdeprecation
Das deprecation-Objekt weist die folgenden Eigenschaften auf:
| Name | Typ | Erforderlich | Hinweise |
|---|---|---|---|
| Begründungen | Feld von Zeichenfolgen | yes | Die Gründe, warum das Paket veraltet war |
| message | string | nein | Weitere Details zur Deaktivierung |
| alternatePackage | Objekt | nein | Das alternative Paket, das stattdessen verwendet werden soll |
Das reasons Array enthält mindestens einen der Werte, die in der Paketdeprecation dokumentiert sind.
Das alternatePackage-Objekt weist die folgenden Eigenschaften auf:
| Name | Typ | Erforderlich | Hinweise |
|---|---|---|---|
| id | string | yes | Die ID des alternativen Pakets |
| Bereich | string | nein | Der zulässige Versionsbereich oder * wenn eine Version zulässig ist |
Schwachstellen
Jedes Element im vulnerabilities Array ist ein JSON-Objekt mit den folgenden Eigenschaften:
| Name | Typ | Erforderlich | Hinweise |
|---|---|---|---|
| advisoryUrl | string | yes | Die URL der Sicherheitsempfehlung für das Paket |
| severity | integer | yes | Der Schweregrad der Empfehlung: 0 = Niedrig, 1 = Mittel, 2 = Hoch und 3 = Kritisch |
Das Array ist leer, wenn die neueste Paketversion keine bekannten Sicherheitsrisiken aufweist.
Das packageTypes Array besteht immer aus mindestens einem (1) Element. 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. Jedes Element im packageTypes Array ist ein JSON-Objekt mit den folgenden Eigenschaften:
| Name | Typ | Erforderlich | Hinweise |
|---|---|---|---|
| Name | string | yes | Der Name des Pakettyps. |
Musteranforderung
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 Abschnitt "Basis-URL " erwähnt.
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,
"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"
}
]
}
]
}