Automatické dokončování

Pomocí rozhraní API V3 je možné vytvořit ID balíčku a prostředí automatického dokončování verzí. Prostředek použitý k vytváření dotazů automatického dokončování je prostředek, který SearchAutocompleteService se nachází v indexu služby.

Vytváření verzí

Používají se následující @type hodnoty:

@type Hodnotu Notes
SearchAutocompleteService Počáteční verze
SearchAutocompleteService/3.0.0-beta Alias of SearchAutocompleteService
SearchAutocompleteService/3.0.0-rc Alias of SearchAutocompleteService
SearchAutocompleteService/3.5.0 Zahrnuje podporu parametru packageType dotazu.

SearchAutocompleteService/3.5.0

Tato verze zavádí podporu parametru packageType dotazu, což umožňuje filtrování podle typů balíčků definovaných autorem. Je plně zpětně kompatibilní s dotazy na SearchAutocompleteService.

Základní adresa URL

Základní adresa URL pro následující rozhraní API je hodnota @id vlastnosti přidružené k jedné z výše uvedených hodnot prostředků @type . V následujícím dokumentu se použije zástupná základní adresa URL {@id} . Základní adresa URL se může změnit na základě změn implementace nebo infrastruktury ve zdroji balíčku, takže se musí dynamicky načítat z indexu služby klientským softwarem.

Metody HTTP

Všechny adresy URL nalezené v prostředku registrace podporují metody GET HTTP a HEAD.

Vyhledání ID balíčků

První rozhraní API automatického dokončování podporuje hledání části řetězce ID balíčku. To je skvělé, když chcete poskytnout funkci typeahead balíčku v uživatelském rozhraní integrovaném se zdrojem balíčku NuGet.

Ve výsledcích se nezobrazí balíček s pouze nelistovanými verzemi.

GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}

Parametry požadavku

Název V Typ Požaduje se Notes
q URL string ne Řetězec, který se má porovnat s ID balíčků
skip Adresa URL integer ne Počet výsledků, které se mají přeskočit pro stránkování
take Adresa URL integer ne Počet vrácených výsledků pro stránkování
předběžná verze Adresa URL boolean ne true nebo false určení, zda zahrnout předběžné verze balíčků
semVerLevel URL string ne Řetězec verze SemVer 1.0.0
packageType URL string ne Typ balíčku, který se má použít k filtrování balíčků (přidáno do SearchAutocompleteService/3.5.0)

Dotaz q automatického dokončování je analyzován způsobem, který je definován implementací serveru. nuget.org podporuje dotazování na předponu tokenů ID balíčku, což jsou části ID vytvořené rozdělením původních znaků camel case a symbolů.

Výchozí skip hodnota parametru je 0.

Parametr take by měl být celé číslo větší než nula. Implementace serveru může mít maximální hodnotu.

Pokud prerelease není k dispozici, předem vydané balíčky jsou vyloučeny.

Parametr semVerLevel dotazu se používá k vyjádření souhlasu s balíčky SemVer 2.0.0. Pokud je tento parametr dotazu vyloučený, vrátí se pouze ID balíčků s kompatibilními verzemi SemVer 1.0.0 (se standardními upozorněními na správu verzí NuGet, jako jsou řetězce verzí se 4 celými čísly). Pokud semVerLevel=2.0.0 je k dispozici, vrátí se oba balíčky kompatibilní s SemVer 1.0.0 a SemVer 2.0.0. Další informace najdete v podpoře semVer 2.0.0 pro nuget.org .

Tento packageType parametr slouží k dalšímu filtrování výsledků automatického dokončování pouze na balíčky, které mají alespoň jeden typ balíčku odpovídající názvu typu balíčku. Pokud zadaný typ balíčku není platným typem balíčku definovaným dokumentem Typ balíčku, vrátí se prázdný výsledek. Pokud je zadaný typ balíčku prázdný, nepoužije se žádný filtr. Jinými slovy, předání žádné hodnoty parametru packageType se bude chovat, jako by parametr nebyl předán.

Response

Odpověď je dokument JSON obsahující až automatické take dokončování výsledků.

Kořenový objekt JSON má následující vlastnosti:

Name Type Požaduje se Notes
totalHits integer ano Celkový počet shod, ignorování skip a take
data pole řetězců ano ID balíčku, která odpovídají žádosti

Ukázkový požadavek

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

Nezapomeňte načíst základní adresu URL (https://search-sample.nuget.org/autocomplete v této ukázce) z indexu služby, jak je uvedeno v části základní adresy URL .

Ukázková odpověď

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

Výčet verzí balíčků

Po zjištění ID balíčku pomocí předchozího rozhraní API může klient použít rozhraní API automatického dokončování k vytvoření výčtu verzí balíčků pro zadané ID balíčku.

Ve výsledcích se nezobrazí verze balíčku, která není uvedena v seznamu.

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

Parametry požadavku

Název V Typ Požaduje se Notes
ID URL string ano ID balíčku pro načtení verzí pro
předběžná verze Adresa URL boolean ne true nebo false určení, zda zahrnout předběžné verze balíčků
semVerLevel URL string ne Řetězec verze SemVer 2.0.0

Pokud prerelease není k dispozici, předem vydané balíčky jsou vyloučeny.

Parametr semVerLevel dotazu se používá k vyjádření souhlasu s balíčky SemVer 2.0.0. Pokud je tento parametr dotazu vyloučený, vrátí se pouze verze SemVer 1.0.0. Pokud semVerLevel=2.0.0 je k dispozici, vrátí se obě verze SemVer 1.0.0 a SemVer 2.0.0. Další informace najdete v podpoře semVer 2.0.0 pro nuget.org .

Response

Odpověď je dokument JSON obsahující všechny verze balíčku zadaného ID balíčku a filtruje se podle zadaných parametrů dotazu.

Kořenový objekt JSON má následující vlastnost:

Name Type Požaduje se Notes
data pole řetězců ano Verze balíčků, které odpovídají požadavku

Verze balíčků v data poli mohou obsahovat metadata sestavení SemVer 2.0.0 (např. 1.0.0+metadata) v případě semVerLevel=2.0.0 , že je zadaný v řetězci dotazu.

Ukázkový požadavek

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

Ukázková odpověď

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