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