Freigeben über


AutoVervollständigen

Es ist möglich, mithilfe der V3-API eine AutoVervollständigen-Funktion für Paket-IDs und Versionen zu erstellen. Die Ressource, die zum Erstellen von AutoVervollständigen-Abfragen verwendet wird, ist die SearchAutocompleteService-Ressource im Dienstindex.

Versionsverwaltung

Die folgenden @type-Werte werden verwendet:

Wert vom Typ @type Hinweise
SearchAutocompleteService Erstrelease
SearchAutocompleteService/3.0.0-beta Alias von SearchAutocompleteService
SearchAutocompleteService/3.0.0-rc Alias von SearchAutocompleteService
SearchAutocompleteService/3.5.0 Umfasst Unterstützung für den packageType-Abfrageparameter

SearchAutocompleteService/3.5.0

Diese Version bietet Unterstützung für den packageType-Abfrageparameter, die eine Filterung nach vom Autor definierten Pakettypen ermöglicht. Sie ist vollständig abwärtskompatibel mit Abfragen für SearchAutocompleteService.

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.

Suchen nach Paket-IDs

Die erste AutoVervollständigen-API unterstützt die Suche nach einem Teil einer Paket-ID-Zeichenfolge. Dies ist ideal, wenn Sie eine Vorschlagssuchfunktion für Pakete in einer Benutzeroberfläche bereitstellen möchten, die in eine NuGet-Paketquelle integriert ist.

Ein Paket, das nur nicht aufgeführte Versionen enthält, wird nicht in den Ergebnissen angezeigt.

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 Zeichenfolge für den Vergleich mit Paket-IDs
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 SearchAutocompleteService/3.5.0)

Die AutoVervollständigen-Abfrage q wird gemäß der Definition in der Serverimplementierung analysiert. nuget.org unterstützt das Abfragen des Präfixes von Paket-ID-Token. Hierbei handelt es sich um Teile der ID, die durch Aufteilen der Originalzeichenfolge nach Camel-Case-Schreibung und Symbolzeichen erzeugt werden.

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.

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 Ergebnisse von AutoVervollständigen 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.

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 Zeichenfolgen-Arrays ja Die mit der Anforderung übereinstimmenden Paket-IDs

Beispielanfrage

GET https://search-sample.nuget.org/autocomplete?q=storage&prerelease=true

Stellen Sie sicher, dass Sie die Basis-URL (https://search-sample.nuget.org/autocomplete in diesem Beispiel) aus dem Dienstindex abrufen, wie im Basis-URL-Abschnitt Erwähnung.

Beispiel für eine Antwort

{
  "totalHits": 571,
  "data": [
    "WindowsAzure.Storage",
    "Storage.Net",
    "CK.Storage",
    "NCL.Storage",
    "DK.Storage",
    "Nine.Storage.Test",
    "Touch.Storage.Aws",
    "StorageAPIClient",
    "StorageAccess",
    "Storage.Net.Microsoft.Azure.Storage",
    "UnofficialAzure.StorageClient",
    "StorageAccess12",
    "AWSSDK.StorageGateway",
    "StorageExtensions",
    "Cloud.Storage",
    "lighthouse.storage",
    "ZU.Storage.Redis",
    "Magicodes.Storage",
    "Masticore.Storage",
    "hq.storage"
  ]
}

Aufzählen von Paketversionen

Sobald eine Paket-ID mithilfe der vorherigen API gefunden wurde, kann ein Client die AutoVervollständigen-API verwenden, um Paketversionen für eine bereitgestellte Paket-ID aufzuzählen.

Eine nicht aufgeführte Paketversion wird in den Ergebnissen nicht angezeigt.

GET {@id}?id={ID}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}

Anforderungsparameter

Name Geben Sie in type Erforderlich Hinweise
id URL Zeichenfolge ja Die Paket-ID, für die Versionen abgerufen werden sollen
Vorabversion URL boolean Nein true oder false zum Festlegen, ob Vorabversionen von Paketen zu berücksichtigen sind
semVerLevel URL Zeichenfolge Nein Eine SemVer 2.0.0-Versionszeichenfolge

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 SemVer 1.0.0-Versionen zurückgegeben. Wenn semVerLevel=2.0.0 angegeben wird, werden sowohl SemVer 1.0.0- als auch SemVer 2.0.0-Versionen zurückgegeben. Weitere Informationen finden Sie unter SemVer 2.0.0-Unterstützung für nuget.org.

Antwort

Die Antwort ist ein JSON-Dokument, das alle Paketversionen der bereitgestellten Paket-ID enthält und nach den angegebenen Abfrageparametern filtert.

Das JSON-Stammobjekt weist die folgende Eigenschaft auf:

Name Type Erforderlich Hinweise
data Zeichenfolgen-Arrays ja Die mit der Anforderung übereinstimmenden Paketversionen

Die Paketversionen im data-Array können SemVer 2.0.0-Buildmetadaten (z. B. 1.0.0+metadata) enthalten, wenn semVerLevel=2.0.0 in der Abfragezeichenfolge angegeben wird.

Beispielanforderung

GET https://api-v2v3search-0.nuget.org/autocomplete?id=nuget.protocol&prerelease=true

Beispielantwort

{
  "data": [
    "4.3.0-preview3-4168",
    "4.3.0-preview4",
    "4.3.0-rtm-4324",
    "4.3.0",
    "4.4.0-preview3-4475",
    "4.4.0"
  ]
}