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"
]
}