서비스 인덱스는 NuGet 패키지 원본의 진입점이며 클라이언트 구현에서 패키지 원본의 기능을 검색할 수 있도록 하는 JSON 문서입니다. 서비스 인덱스는 두 가지 version
필수 속성(서비스 인덱스의 스키마 버전) 및 resources
(패키지 원본의 엔드포인트 또는 기능)가 있는 JSON 개체입니다.
nuget.org의 서비스 인덱스는 .에 있습니다 https://api.nuget.org/v3/index.json
.
Versioning
이 값은 version
서비스 인덱스의 스키마 버전을 나타내는 SemVer 2.0.0 구문 분석 가능 버전 문자열입니다. API는 버전 문자열에 주 버전 번호의 3
. 서비스 인덱스 스키마에 대한 호환성이 손상되지 않는 변경이 이루어지면 버전 문자열의 부 버전이 증가합니다.
서비스 인덱스에서 각 리소스는 서비스 인덱스 스키마 버전과 독립적으로 버전이 지정됩니다.
현재 스키마 버전은 3.0.0
. 버전은 3.0.0
이전 3.0.0-beta.1
버전과 기능적으로 동일하지만 안정적이고 정의된 스키마를 보다 명확하게 전달하므로 선호해야 합니다.
HTTP methods
서비스 인덱스는 HTTP 메서드 GET
및 HEAD
.를 사용하여 액세스할 수 있습니다.
Resources
이 속성에는 resources
이 패키지 원본에서 지원하는 리소스 배열이 포함되어 있습니다.
Resource
리소스는 배열의 개체입니다 resources
. 패키지 원본의 버전이 지정된 기능을 나타냅니다. 리소스에는 다음과 같은 속성이 있습니다.
Name | Type | Required | Notes |
---|---|---|---|
@id | string | yes | 리소스에 대한 URL |
@type | string | yes | 리소스 종류를 나타내는 문자열 상수입니다. |
comment | string | no | 리소스에 대한 사람이 읽을 수 있는 설명 |
이 URL은 @id
절대적이어야 하며 HTTP 또는 HTTPS 스키마가 있어야 합니다.
리소스 @type
와 상호 작용할 때 사용할 특정 프로토콜을 식별하는 데 사용됩니다. 리소스의 형식은 불투명 문자열이지만 일반적으로 형식은 다음과 같습니다.
{RESOURCE_NAME}/{RESOURCE_VERSION}
클라이언트는 이해하고 조회하는 값을 패키지 원본의 서비스 인덱스에 하드 코딩 @type
해야 합니다. 현재 사용 중인 정확한 @type
값은 API 개요에 나열된 개별 리소스 참조 문서에 열거됩니다.
이 설명서를 위해 다양한 리소스에 대한 설명서는 기본적으로 시나리오별 {RESOURCE_NAME}
그룹화와 유사한 서비스 인덱스에 있는 항목별로 그룹화됩니다.
각 리소스에 고유 @id
또는 @type
.가 있어야 하는 요구 사항은 없습니다. 다른 리소스보다 선호할 리소스를 결정하는 것은 클라이언트 구현에 달려 있습니다. 한 가지 가능한 구현은 연결 오류 또는 서버 오류 발생 시 동일하거나 호환 @type
되는 리소스를 라운드 로빈 방식으로 사용할 수 있다는 것입니다.
리소스는 서비스 인덱스와 다른 호스트 또는 도메인을 사용할 수 있지만, 이로 인해 엄격한 네트워크 규칙이 있는 환경에서 문제가 발생할 수 있습니다. 특히 서비스 인덱스가 nuget.org 직접 가리키는 리소스를 추가하는 경우(사용자 고유의 피드를 통해 프록시 또는 캐싱하는 대신) nuget.org 대한 액세스가 차단되는 경우 피드가 작동하지 않습니다. 피드가 특정 리소스를 nuget.org 위임하려는 경우 피드가 배포될 때 서비스 인덱스에서 직접 nuget.org 참조를 제거할 수 있도록 구성을 추가하는 것이 좋습니다.
Sample request
GET https://api.nuget.org/v3/index.json
Sample response
{
"version": "3.0.0",
"resources": [
{
"@id": "https://api.nuget.org/v3-flatcontainer/",
"@type": "PackageBaseAddress/3.0.0",
"comment": "Base URL of Azure storage where NuGet package registration info for NET Core is stored, in the format https://api.nuget.org/v3-flatcontainer/{id-lower}/{id-lower}.{version-lower}.nupkg"
},
{
"@id": "https://www.nuget.org/api/v2/package",
"@type": "PackagePublish/2.0.0"
},
{
"@id": "https://api-v2v3search-0.nuget.org/query",
"@type": "SearchQueryService/3.0.0-rc",
"comment": "Query endpoint of NuGet Search service (primary) used by RC clients"
},
{
"@id": "https://api-v2v3search-0.nuget.org/autocomplete",
"@type": "SearchAutocompleteService/3.0.0-rc",
"comment": "Autocomplete endpoint of NuGet Search service (primary) used by RC clients"
},
{
"@id": "https://api.nuget.org/v3/registration2/",
"@type": "RegistrationsBaseUrl/3.0.0-rc",
"comment": "Base URL of Azure storage where NuGet package registration info is stored used by RC clients. This base URL does not include SemVer 2.0.0 packages."
}
]
}