Partager via


Saisie semi-automatique

Il est possible de créer un ID de package et une expérience d’autocomplétion de version à l’aide de l’API V3. La ressource utilisée pour effectuer des requêtes d’autocomplétion est la ressource SearchAutocompleteService trouvée dans l’index de service.

Contrôle de version

Les valeurs @type suivantes sont utilisées :

Valeur @type Notes
SearchAutocompleteService La version initiale
SearchAutocompleteService/3.0.0-beta Alias de SearchAutocompleteService
SearchAutocompleteService/3.0.0-rc Alias de SearchAutocompleteService
SearchAutocompleteService/3.5.0 Inclut la prise en charge du paramètre de requête packageType

SearchAutocompleteService/3.5.0

Cette version introduit la prise en charge du packageType paramètre de requête, ce qui autorise le filtrage par types de package définis par l’auteur. Il est entièrement rétrocompatible avec les requêtes à SearchAutocompleteService.

URL de base

L’URL de base des API suivantes est la valeur de la propriété @id associée à l’une des valeurs de ressource @type mentionnées ci-dessus. Dans le document suivant, l’URL {@id} de base de l’espace réservé sera utilisée. L’URL de base peut changer en fonction de l’implémentation ou des modifications d’infrastructure dans la source du package. Elle doit donc être récupérée dynamiquement de l’index de service par le logiciel client.

HTTP Methods

Toutes les URL trouvées dans la ressource d’inscription prennent en charge les méthodes HTTP GET et HEAD.

Recherche des ID de packages

La première API d’autocomplétion prend en charge la recherche d’une partie d’une chaîne d’ID de package. C’est très utile lorsque vous souhaitez fournir une fonctionnalité de typeahead de package dans une interface utilisateur intégrée à une source de package NuGet.

Un package avec uniquement des versions non répertoriées n’apparaît pas dans les résultats.

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

Paramètres de la demande

Nom Dans Type Requise Notes
q URL string non Chaîne à comparer aux ID de package
skip URL entier non Nombre de résultats à ignorer, pour la pagination
take URL entier non Le nombre de résultats à renvoyer, pour la pagination
version préliminaire URL booléen non true ou false déterminer s’il faut inclure des packages de préversion
semVerLevel URL string non Chaîne de version SemVer 1.0.0
packageType URL string non Le type de package à utiliser pour filtrer les packages (ajoutés dans SearchAutocompleteService/3.5.0)

La requête q d’autocomplétion est analysée de manière définie par l’implémentation du serveur. nuget.org prend en charge l’interrogation du préfixe des jetons d’ID de package, qui sont des éléments de l’ID générés en fractionnant l’original par la casse mixte et les caractères de symbole.

La valeur par défaut du paramètre skip est 0.

Le paramètre take doit être un entier supérieur à zéro. L’implémentation du serveur peut imposer une valeur maximale.

Si prerelease n’est pas fourni, les packages en préversion sont exclus.

Le paramètre de requête semVerLevel est utilisé pour opter pour les packages SemVer 2.0.0. Si ce paramètre de requête est exclu, seuls les ID de package avec les versions compatibles semVer 1.0.0 sont retournés (avec les mises en garde du contrôle de version NuGet standard, telles que les chaînes de version avec 4 éléments entiers). Si semVerLevel=2.0.0 est fourni, les packages compatibles SemVer 1.0.0 et SemVer 2.0.0 sont retournés. Pour plus d’informations, consultez le support de SemVer 2.0.0 pour nuget.org.

Le paramètre packageType est utilisé pour filtrer davantage les résultats d’autocomplétion sur uniquement les packages qui ont au moins un type de package correspondant au nom du type de package. Si le type de package fourni n’est pas un type de package valide tel que défini par le document Type de package, un résultat vide est retourné. Si le type de package fourni est vide, aucun filtre n’est appliqué. En d’autres termes, la transmission d’aucune valeur au paramètre packageType se comporte comme si le paramètre n’a pas été transféré.

Response

La réponse est un document JSON contenant jusqu’à take résultats d’autocomplétion.

L’objet racine JSON dispose des propriétés suivantes :

Nom Type Requise Notes
totalHits entier Oui Le nombre total de correspondances, sans tenir compte de skip ni de take
données tableau de chaînes Oui ID de package mises en correspondance par la requête

Exemple de requête

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

Veillez à récupérer l’URL de base (https://search-sample.nuget.org/autocomplete dans cet exemple) à partir de l’index de service, comme indiqué dans la section URL de base.

Exemple de réponse

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

Énumérer les versions du package

Une fois qu’un ID de package est découvert à l’aide de l’API précédente, un client peut utiliser l’API d’autocomplétion pour énumérer les versions de package pour un ID de package fourni.

Une version de package non répertoriée n’apparaît pas dans les résultats.

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

Paramètres de la demande

Nom Dans Type Requise Notes
id URL string Oui ID de package pour récupérer les versions pour
version préliminaire URL booléen non true ou false déterminer s’il faut inclure des packages de préversion
semVerLevel URL string non Chaîne de version SemVer 2.0.0

Si prerelease n’est pas fourni, les packages en préversion sont exclus.

Le paramètre de requête semVerLevel est utilisé pour opter pour les packages SemVer 2.0.0. Si ce paramètre de requête est exclu, seules les versions de SemVer 1.0.0 sont retournées. Si semVerLevel=2.0.0 est fourni, les versions SemVer 1.0.0 et SemVer 2.0.0 sont retournés. Pour plus d’informations, consultez le support de SemVer 2.0.0 pour nuget.org.

Response

La réponse est un document JSON contenant toutes les versions de package de l’ID de package fourni, en filtrant par les paramètres de requête donnés.

L’objet racine JSON dispose de la propriété suivante :

Nom Type Requise Notes
données tableau de chaînes Oui Versions de package mises en correspondance par la requête

Les versions de package du tableau data peuvent contenir des métadonnées de build SemVer 2.0.0 (par exemple 1.0.0+metadata) si les semVerLevel=2.0.0 sont fournis dans la chaîne de requête.

Exemple de requête

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

Exemple de réponse

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