Contenu de package
Il est possible de générer une URL pour récupérer le contenu d’un package arbitraire (le fichier .nupkg) à l’aide de l’API V3. La ressource utilisée pour récupérer le contenu du package est la ressource PackageBaseAddress
trouvée dans l’index de service. Cette ressource permet également la découverte de toutes les versions d’un package, listées ou non répertoriées.
Cette ressource est communément appelée « adresse de base de package » ou « conteneur plat ».
Contrôle de version
La valeur suivante @type
est utilisée :
Valeur @type | Notes |
---|---|
PackageBaseAddress/3.0.0 | La version initiale |
URL de base
L’URL de base pour les API suivante est la valeur de la propriété @id
associée à l’une une valeur de ressource @type
mentionnée 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.
Méthodes HTTP
Toutes les URL trouvées dans la ressource de contenu de package prennent en charge les méthodes HTTP GET
et HEAD
.
Énumérer les versions du package
Si le client connaît un ID de package et souhaite découvrir quelles versions de package la source du package est disponible, le client peut construire une URL prévisible pour énumérer toutes les versions du package. Cette liste est destinée à être une « liste d’annuaires » pour l’API de contenu du package mentionnée ci-dessous.
Remarque
Cette liste contient les versions de package répertoriées et retirées de la liste.
GET {@id}/{LOWER_ID}/index.json
Paramètres de la demande
Nom | Dans | Type | Requise | Notes |
---|---|---|---|---|
LOWER_ID | URL | string | Oui | L’ID du package, en minuscules |
La valeur LOWER_ID
est l’ID de package souhaité en minuscules à l’aide des règles implémentées par la méthode de NET System.String.ToLowerInvariant()
.
Response
Si la source du package n’a aucune version de l’ID de package fourni, un code de statut 404 est retourné.
Si la source du package comporte une ou plusieurs versions, un code d’état 200 est retourné. Le corps de la réponse est un objet JSON avec la propriété suivante :
Nom | Type | Requise | Notes |
---|---|---|---|
versions | tableau de chaînes | Oui | Les versions disponibles. |
Les chaînes du tableau versions
sont toutes des chaînes de version NuGet normalisées en minuscules. Les chaînes de version ne contiennent aucune métadonnée de version SemVer 2.0.0.
L’intention est que les chaînes de version trouvées dans ce tableau peuvent être utilisées en détail pour les jetons LOWER_VERSION
trouvés dans les points de terminaison suivants.
Exemple de requête
GET https://api.nuget.org/v3-flatcontainer/owin/index.json
Veillez à récupérer l’URL de base (https://api.nuget.org/v3-flatcontainer/
dans cet exemple) à partir de l’index de service, comme indiqué dans la section URL de base.
Exemple de réponse
{
"versions": [
"0.5.0",
"0.7.0",
"0.11.0",
"0.12.0",
"0.14.0",
"1.0.0"
]
}
Télécharger le contenu du package (.nupkg)
Si le client connaît un ID de package et une version et souhaite télécharger le contenu du package, il doit uniquement construire l’URL suivante :
GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.{LOWER_VERSION}.nupkg
Paramètres de la demande
Nom | Dans | Type | Requise | Notes |
---|---|---|---|---|
LOWER_ID | URL | string | Oui | L’ID du package, en minuscules |
LOWER_VERSION | URL | string | Oui | La version du package, normalisée et en minuscules |
À la fois LOWER_ID
et LOWER_VERSION
sont en minuscules à l’aide des règles implémentées par . NET méthode System.String.ToLowerInvariant()
.
La LOWER_VERSION
est la version de package souhaitée normalisée à l’aide des règles de normalisation de version de NuGet. Cela signifie que les métadonnées de build autorisées par la spécification SemVer 2.0.0 doivent être exclues dans ce cas.
Corps de réponse
Si le package existe sur la source du package, un code d’état 200 est retourné. Le corps de la réponse sera le contenu du package lui-même.
Si le package n’existe pas sur la source du package, un code de statut 404 est retourné.
Exemple de requête
GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/9.0.1/newtonsoft.json.9.0.1.nupkg
Veillez à récupérer l’URL de base (https://api.nuget.org/v3-flatcontainer/
dans cet exemple) à partir de l’index de service, comme indiqué dans la section URL de base.
Exemple de réponse
Flux binaire qui est le fichier .nupkg pour Newtonsoft.Json 9.0.1.
Télécharger le manifeste du package (.nuspec)
Si le client connaît un ID de package et une version et souhaite télécharger le manifeste du package, il doit uniquement construire l’URL suivante :
GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.nuspec
Paramètres de la demande
Nom | Dans | Type | Requise | Notes |
---|---|---|---|---|
LOWER_ID | URL | string | Oui | L’ID du package, en minuscules |
LOWER_VERSION | URL | string | Oui | La version du package, normalisée et en minuscules |
À la fois LOWER_ID
et LOWER_VERSION
sont en minuscules à l’aide des règles implémentées par la méthode System.String.ToLowerInvariant()
. NET.
La LOWER_VERSION
est la version de package souhaitée normalisée à l’aide des règles de normalisation de version de NuGet. Cela signifie que les métadonnées de build autorisées par la spécification SemVer 2.0.0 doivent être exclues dans ce cas.
Corps de réponse
Si le package existe sur la source du package, un code d’état 200 est retourné. Le corps de la réponse sera le manifeste du package, qui est le .nuspec contenu dans le fichier .nupkg correspondant. Le .nuspec est un document XML.
Si le package n’existe pas sur la source du package, un code de statut 404 est retourné.
Exemple de requête
GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/6.0.4/newtonsoft.json.nuspec
Veillez à récupérer l’URL de base (https://api.nuget.org/v3-flatcontainer/
dans cet exemple) à partir de l’index de service, comme indiqué dans la section URL de base.
Exemple de réponse
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2010/07/nuspec.xsd">
<metadata>
<id>Newtonsoft.Json</id>
<version>6.0.4</version>
<title>Json.NET</title>
<authors>James Newton-King</authors>
<owners>James Newton-King</owners>
<licenseUrl>https://raw.github.com/JamesNK/Newtonsoft.Json/master/LICENSE.md</licenseUrl>
<projectUrl>http://james.newtonking.com/json</projectUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>Json.NET is a popular high-performance JSON framework for .NET</description>
<language>en-US</language>
<tags>json</tags>
</metadata>
</package>