Contenido de un paquete
Es posible generar una dirección URL para capturar el contenido de un paquete arbitrario (el archivo .nupkg) mediante la API V3. El recurso utilizado para capturar el contenido del paquete es el recurso PackageBaseAddress
que se encuentra en el índice de servicio. Este recurso también habilita el descubrimiento de todas las versiones de un paquete, incluidas o no en la lista.
Este recurso se conoce normalmente como “dirección base del paquete” o como “contenedor plano”.
Control de versiones
Se utiliza el siguiente valor de @type
:
Valor de @type | Notas |
---|---|
PackageBaseAddress/3.0.0 | La versión inicial |
URL base
La dirección URL base de las siguientes API es el valor de la propiedad @id
asociada al valor @type
de recurso mencionado anteriormente. En el documento siguiente, se usará la dirección URL base del marcador de posición {@id}
. La dirección URL base puede cambiar en función de los cambios de implementación o infraestructura dentro del origen del paquete, por lo que el software cliente debe capturarla dinámicamente desde el índice de servicio.
Métodos HTTP
Todas las direcciones URL que se encuentran en el recurso de contenido de paquete admiten los métodos HTTP GET
y HEAD
.
Enumeración de versiones de paquetes
Si el cliente conoce un id. de paquete y quiere descubrir qué versiones de paquete tiene disponibles el origen del paquete, el cliente puede construir una dirección URL predecible para enumerar todas las versiones del paquete. Esta lista está pensada para ser una “lista de directorios” para la API de contenido de paquetes que se menciona a continuación.
Nota
La lista de directorios contiene todas las versiones de un paquete, enumeradas o no.
GET {@id}/{LOWER_ID}/index.json
Parámetros de solicitud
Nombre | En | Tipo | Obligatorio | Notas |
---|---|---|---|---|
LOWER_ID | Dirección URL | string | sí | Id. del paquete, en minúsculas |
El valor LOWER_ID
es el id. de paquete deseado escrito en minúsculas mediante las reglas implementadas por el método System.String.ToLowerInvariant()
de .NET.
Respuesta
Si el origen del paquete no tiene ninguna versión del id. de paquete proporcionado, se devuelve un código de estado 404.
Si el origen del paquete tiene una o más versiones, se devuelve un código de estado 200. El cuerpo de la respuesta es un objeto JSON con la siguiente propiedad:
Nombre | Type | Obligatorio | Notas |
---|---|---|---|
versions | Matriz de cadenas | sí | Versiones disponibles |
Las cadenas de la matriz versions
están todas en minúsculas y son cadenas normalizadas de versión de NuGet. Las cadenas de versión no contienen ningún metadato de generación de SemVer 2.0.0.
La intención es que las cadenas de versión que se encuentran en esta matriz se puedan usar textualmente para los tokens LOWER_VERSION
que se encuentran en los siguientes puntos de conexión.
Solicitud de muestra
GET https://api.nuget.org/v3-flatcontainer/owin/index.json
Asegúrate de capturar la dirección URL base (https://api.nuget.org/v3-flatcontainer/
en este ejemplo) del índice de servicio, tal y como se indica en la sección de la dirección URL base.
Respuesta de muestra
{
"versions": [
"0.5.0",
"0.7.0",
"0.11.0",
"0.12.0",
"0.14.0",
"1.0.0"
]
}
Descarga de contenido del paquete (.nupkg)
Si el cliente conoce la versión e id. de un paquete y quiere descargar el contenido de este, solo necesita construir la siguiente dirección URL:
GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.{LOWER_VERSION}.nupkg
Parámetros de solicitud
Nombre | En | Tipo | Obligatorio | Notas |
---|---|---|---|---|
LOWER_ID | Dirección URL | string | sí | Id. del paquete, en minúsculas |
LOWER_VERSION | Dirección URL | string | sí | Versión del paquete, normalizada y en minúsculas |
Tanto LOWER_ID
como LOWER_VERSION
se expresan en minúsculas mediante las reglas implementadas por .NETMétodo System.String.ToLowerInvariant()
.
LOWER_VERSION
es la versión del paquete deseada, normalizada mediante las reglas de normalización de versión de NuGet. Esto significa que, en este caso, es necesario excluir los metadatos de generación que permite la especificación de SemVer 2.0.0.
Cuerpo de la respuesta
Si el paquete existe en el origen del paquete, se devuelve un código de estado 200. El cuerpo de la respuesta será el propio contenido del paquete.
Si el paquete no existe en el origen del paquete, se devuelve un código de estado 404.
Solicitud de muestra
GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/9.0.1/newtonsoft.json.9.0.1.nupkg
Asegúrate de capturar la dirección URL base (https://api.nuget.org/v3-flatcontainer/
en este ejemplo) del índice de servicio, tal y como se indica en la sección de la dirección URL base.
Respuesta de muestra
Secuencia binaria que es el .nupkg para Newtonsoft.Json 9.0.1.
Descarga de manifiesto de paquete (.nuspec)
Si el cliente conoce la versión e id. de un paquete y quiere descargar el manifiesto de este, solo necesita construir la siguiente dirección URL:
GET {@id}/{LOWER_ID}/{LOWER_VERSION}/{LOWER_ID}.nuspec
Parámetros de solicitud
Nombre | En | Tipo | Obligatorio | Notas |
---|---|---|---|---|
LOWER_ID | Dirección URL | string | sí | Id. del paquete, en minúsculas |
LOWER_VERSION | Dirección URL | string | sí | Versión del paquete, normalizada y en minúsculas |
Tanto LOWER_ID
como LOWER_VERSION
se expresan en minúsculas mediante las reglas implementadas por el método System.String.ToLowerInvariant()
de .NET.
LOWER_VERSION
es la versión del paquete deseada, normalizada mediante las reglas de normalización de versión de NuGet. Esto significa que, en este caso, es necesario excluir los metadatos de generación que permite la especificación de SemVer 2.0.0.
Cuerpo de la respuesta
Si el paquete existe en el origen del paquete, se devuelve un código de estado 200. El cuerpo de la respuesta será el manifiesto de paquete, que es el .nuspec contenido en el archivo .nupkg correspondiente. El .nuspec es un documento XML.
Si el paquete no existe en el origen del paquete, se devuelve un código de estado 404.
Solicitud de muestra
GET https://api.nuget.org/v3-flatcontainer/newtonsoft.json/6.0.4/newtonsoft.json.nuspec
Asegúrate de capturar la dirección URL base (https://api.nuget.org/v3-flatcontainer/
en este ejemplo) del índice de servicio, tal y como se indica en la sección de la dirección URL base.
Respuesta de muestra
<?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>