Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Il est possible de rechercher des packages disponibles sur une source de package à l’aide de l’API V3. La ressource utilisée pour la recherche est la SearchQueryService ressource trouvée dans l’index de service.
Gestion des versions
Les valeurs suivantes @type sont utilisées :
| Valeur @type | Remarques |
|---|---|
| SearchQueryService | La version initiale |
| SearchQueryService/3.0.0-beta | Alias de SearchQueryService |
| SearchQueryService/3.0.0-rc | Alias de SearchQueryService |
| SearchQueryService/3.5.0 | Inclut la prise en charge du packageType paramètre de requête |
SearchQueryService/3.5.0
Cette version introduit la prise en charge du packageType paramètre de requête et de la packageTypes propriété de réponse, ce qui autorise le filtrage par types de package définis par l’auteur. Il est entièrement rétrocompatible avec les requêtes à SearchQueryService.
URL de base
L’URL de base de l’API suivante est la valeur de la @id propriété 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 extraite dynamiquement de l’index de service par le logiciel client.
Méthodes HTTP
Toutes les URL trouvées dans la ressource d’inscription prennent en charge les méthodes GET HTTP et HEAD.
Rechercher des packages
L’API de recherche permet à un client d’interroger une page de packages correspondant à une requête de recherche spécifiée. L’interprétation de la requête de recherche (par exemple, la jetonisation des termes de recherche) est déterminée par l’implémentation du serveur, mais l’attente générale est que la requête de recherche est utilisée pour les ID de package correspondants, les titres, les descriptions et les balises. D’autres champs de métadonnées de package peuvent également être pris en compte.
Un package non répertorié ne doit jamais apparaître dans les résultats de recherche.
GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}
Paramètres de la demande
| Name | Dans | Type | Required | Remarques |
|---|---|---|---|---|
| q | URL | string | Non | Termes de recherche à utiliser pour filtrer les packages |
| skip | URL | entier | Non | Nombre de résultats à ignorer, pour la pagination |
| prendre | URL | entier | Non | Nombre de résultats à retourner, pour la pagination |
| préversion | 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 |
| type de paquet | URL | string | Non | Type de package à utiliser pour filtrer les packages (ajoutés dans SearchQueryService/3.5.0) |
La requête q de recherche est analysée de manière définie par l’implémentation du serveur. nuget.org prend en charge le filtrage de base sur divers champs. S’il n’est pas q fourni, tous les packages doivent être retournés, dans les limites imposées par ignorer et prendre. Cela active l’onglet « Parcourir » dans l’expérience de Visual Studio NuGet.
Le skip paramètre est défini par défaut sur 0.
Le take paramètre doit être un entier supérieur à zéro. L’implémentation du serveur peut imposer une valeur maximale.
Note
nuget.org limite le skip paramètre à 3 000 et le take paramètre à 1 000.
S’il prerelease n’est pas fourni, les packages en préversion sont exclus.
Le semVerLevel paramètre de requête est utilisé pour opter pour les packages SemVer 2.0.0.
Si ce paramètre de requête est exclu, seuls les packages avec les versions compatibles semVer 1.0.0 sont retournés (avec les mises en garde standard du contrôle de version NuGet , telles que les chaînes de version avec 4 éléments entiers).
S’il 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 la prise en charge de SemVer 2.0.0 pour nuget.org .
Le packageType paramètre est utilisé pour filtrer davantage les résultats de recherche 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é passé.
Réponse
La réponse est un document JSON contenant jusqu’aux résultats de take la recherche. Les résultats de la recherche sont regroupés par ID de package.
L’objet JSON racine a les propriétés suivantes :
| Name | Type | Required | Remarques |
|---|---|---|---|
| totalHits | entier | yes | Nombre total de correspondances, mépris et skiptake |
| Données | tableau d'objets | yes | Résultats de la recherche mis en correspondance par la requête |
Résultat de la recherche
Chaque élément du data tableau est un objet JSON composé d’un groupe de versions de package partageant le même ID de package.
L’objet dispose des propriétés suivantes :
| Name | Type | Required | Remarques |
|---|---|---|---|
| id | string | yes | ID du package correspondant |
| version | string | yes | Chaîne de version semVer 2.0.0 complète du package (peut contenir des métadonnées de build) |
| description | string | Non | |
| dépréciation | Objet | Non | Dépréciation associée à la dernière version du package |
| versions | tableau d'objets | yes | Toutes les versions du package correspondant au prerelease paramètre |
| authors | chaîne ou tableau de chaînes | Non | |
| iconUrl | string | Non | |
| URL de licence | string | Non | |
| owners | chaîne ou tableau de chaînes | Non | Une chaîne représente le nom d’utilisateur d’un seul propriétaire |
| projectUrl | string | Non | |
| inscription | string | Non | URL absolue de l’index d’inscription associé |
| summary | string | Non | |
| tags | chaîne ou tableau de chaînes | Non | |
| title | string | Non | |
| totalDownloads | entier | Non | Cette valeur peut être déduite par la somme des téléchargements dans le versions tableau |
| Vérifié | booléen | Non | Boolean JSON indiquant si le package est vérifié |
| Vulnérabilités | tableau d'objets | Non | Vulnérabilités de sécurité connues associées à la dernière version du package |
| packageTypes | tableau d'objets | yes | Types de package définis par l’auteur du package (ajouté dans SearchQueryService/3.5.0) |
Sur nuget.org, un package vérifié est un package qui a un ID de package correspondant à un préfixe d’ID réservé et appartenant à l’un des propriétaires du préfixe réservé. Pour plus d’informations, consultez la documentation sur la réservation de préfixe d’ID.
Les métadonnées contenues dans l’objet de résultat de recherche sont extraites de la dernière version du package. Chaque élément du versions tableau est un objet JSON avec les propriétés suivantes :
| Name | Type | Required | Remarques |
|---|---|---|---|
| @id | string | yes | URL absolue de la feuille d’inscription associée |
| version | string | yes | Chaîne de version semVer 2.0.0 complète du package (peut contenir des métadonnées de build) |
| téléchargements | entier | yes | Nombre de téléchargements pour cette version de package spécifique |
Obsolescence du package
L’objet deprecation dispose des propriétés suivantes :
| Name | Type | Required | Remarques |
|---|---|---|---|
| Raisons | tableau de chaînes de caractères | yes | Les raisons pour lesquelles le package a été déprécié |
| message | string | Non | Détails supplémentaires sur la dépréciation |
| alternatePackage | Objet | Non | Autre package à utiliser à la place |
Le reasons tableau contient au moins une des valeurs documentées dans la dépréciation du package.
L’objet alternatePackage dispose des propriétés suivantes :
| Name | Type | Required | Remarques |
|---|---|---|---|
| id | string | yes | ID du package de remplacement |
| range | string | Non | Plage de versions autorisée, ou * si une version est autorisée |
Vulnérabilités
Chaque élément du vulnerabilities tableau est un objet JSON avec les propriétés suivantes :
| Name | Type | Required | Remarques |
|---|---|---|---|
| advisoryUrl | string | yes | URL de l’avis de sécurité pour le package |
| severity | entier | yes | Gravité de l’avis : 0 = Faible, 1 = Modéré, 2 = Élevé et 3 = Critique |
Le tableau est vide lorsque la dernière version du package n’a pas de vulnérabilités connues.
Le packageTypes tableau se compose toujours d’au moins un (1) élément. Le type de package pour un ID de package donné est considéré comme les types de package définis par la dernière version du package par rapport aux autres paramètres de recherche. Chaque élément du packageTypes tableau est un objet JSON avec les propriétés suivantes :
| Name | Type | Required | Remarques |
|---|---|---|---|
| nom | string | yes | Nom du type de package. |
Exemple de requête
GET https://search-sample.nuget.org/query?q=NuGet.Versioning&prerelease=false&semVerLevel=2.0.0
Veillez à extraire l’URL de base (https://search-sample.nuget.org/query dans cet exemple) à partir de l’index de service, comme indiqué dans la section URL de base .
Exemple de réponse
{
"totalHits": 2,
"data": [
{
"registration": "https://api.nuget.org/v3/registration-sample/nuget.versioning/index.json",
"id": "NuGet.Versioning",
"version": "4.4.0",
"description": "NuGet's implementation of Semantic Versioning.",
"summary": "",
"title": "NuGet.Versioning",
"licenseUrl": "https://raw.githubusercontent.com/NuGet/NuGet.Client/dev/LICENSE.txt",
"tags": [ "semver", "semantic", "versioning" ],
"authors": [ "NuGet" ],
"totalDownloads": 141896,
"verified": true,
"vulnerabilities": [],
"packageTypes": [
{
"name": "Dependency"
}
],
"versions": [
{
"version": "3.3.0",
"downloads": 50343,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/3.3.0.json"
},
{
"version": "3.4.3",
"downloads": 27932,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/3.4.3.json"
},
{
"version": "4.0.0",
"downloads": 63004,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/4.0.0.json"
},
{
"version": "4.4.0",
"downloads": 617,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/4.4.0.json"
}
]
},
{
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/index.json",
"@type": "Package",
"registration": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/index.json",
"id": "Nerdbank.GitVersioning",
"version": "2.0.41",
"description": "Stamps your assemblies with semver 2.0 compliant git commit specific version information and provides NuGet versioning information as well.",
"summary": "Stamps your assemblies with semver 2.0 compliant git commit specific version information and provides NuGet versioning information as well.",
"title": "Nerdbank.GitVersioning",
"licenseUrl": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/ed547462f7/LICENSE.txt",
"projectUrl": "http://github.com/aarnott/Nerdbank.GitVersioning",
"tags": [ "git", "commit", "versioning", "version", "assemblyinfo" ],
"authors": [ "Andrew Arnott" ],
"totalDownloads": 11906,
"verified": false,
"vulnerabilities": [],
"versions": [
{
"version": "1.6.35",
"downloads": 10229,
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/1.6.35.json"
},
{
"version": "2.0.41",
"downloads": 1677,
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/2.0.41.json"
}
]
}
]
}