자동 완성
V3 API를 사용하여 패키지 ID 및 버전 자동 완성 환경을 빌드할 수 있습니다. 자동 완성 쿼리를 만드는 데 사용되는 리소스는 서비스 인덱스에 SearchAutocompleteService
있는 리소스입니다.
버전 관리
다음 @type
값이 사용됩니다.
@type 값 | 주의 |
---|---|
SearchAutocompleteService | 초기 릴리스 |
SearchAutocompleteService/3.0.0-beta | SearchAutocompleteService 의 별칭 |
SearchAutocompleteService/3.0.0-rc | SearchAutocompleteService 의 별칭 |
SearchAutocompleteService/3.5.0 | packageType 쿼리 매개 변수 지원 포함 |
SearchAutocompleteService/3.5.0
이 버전은 packageType
쿼리 매개 변수 지원을 도입하여 작성자가 정의한 패키지 형식별로 필터링할 수 있도록 합니다. SearchAutocompleteService
에 대한 쿼리 이전 버전과 완전히 호환됩니다.
기준 URL
다음 API의 기준 URL은 앞에서 언급한 리소스 @type
값 중 하나와 연결된 @id
속성의 값입니다. 다음 문서에서 자리 표시자 기준 URL {@id}
이 사용됩니다. 기본 URL은 패키지 원본 내의 구현 또는 인프라 변경에 따라 변경될 수 있으므로 클라이언트 소프트웨어에서 서비스 인덱스에서 동적으로 가져와야 합니다.
HTTP 메서드
등록 리소스에 있는 모든 URL은 HTTP 메서드 GET
및 HEAD
를 지원합니다.
패키지 ID 검색
첫 번째 자동 완성 API는 패키지 ID 문자열의 일부 검색을 지원합니다. 이는 NuGet 패키지 소스와 통합된 사용자 인터페이스에서 패키지 형식 기능을 제공하려는 경우에 유용합니다.
목록에 없는 버전만 있는 패키지는 결과에 표시되지 않습니다.
GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}
요청 매개 변수
속성 | In | Type | Required | 주의 |
---|---|---|---|---|
q | URL | string | 아니요 | 패키지 ID와 비교할 문자열 |
skip | URL | 정수 | 아니요 | 페이지 매김을 위해 건너뛸 결과 수 |
take | URL | 정수 | 아니요 | 페이지 매김을 위해 반환할 결과 수 |
시험판 | URL | 부울 값 | 아니요 | 시험판 패키지를 포함시킬지 여부를 결정하는 true 또는 false |
semVerLevel | URL | string | 아니요 | SemVer 1.0.0 버전 문자열 |
packageType | URL | string | 아니요 | 패키지를 필터링하는 데 사용할 패키지 형식입니다(SearchAutocompleteService/3.5.0 에 추가) |
자동 완성 쿼리 q
는 서버 구현에 의해 정의된 방식으로 구문 분석됩니다. nuget.org는 소스를 카멜식 대/소문자 및 기호 문자로 분할하여 생성된 ID 조각인 패키지 ID 토큰의 접두사에 대한 쿼리를 지원합니다.
skip
매개 변수의 기본값은 0입니다.
take
매개 변수는 0보다 큰 정수여야 합니다. 서버 구현은 최댓값을 부과할 수 있습니다.
prerelease
를 제공하지 않으면 시험판 패키지가 제외됩니다.
semVerLevel
쿼리 매개 변수는 SemVer 2.0.0 패키지를 옵트인하는 데 사용됩니다.
이 쿼리 매개 변수를 제외하면 SemVer 1.0.0 호환 버전이 있는 패키지 ID만 반환됩니다(정수 조각이 4개인 버전 문자열과 같은 표준 NuGet 버전 관리에 주의).
semVerLevel=2.0.0
를 제공하면 SemVer 1.0.0 및 SemVer 2.0.0 호환 패키지가 모두 반환됩니다. 자세한 내용은 nuget.org의 SemVer 2.0.0 지원을 참조하세요.
packageType
매개 변수는 자동 완성 결과를 패키지 유형 이름과 일치하는 패키지 유형이 하나 이상 있는 패키지로만 추가로 필터링하는 데 사용됩니다.
제공된 패키지 형식이 패키지 형식 문서로 정의된 유효한 패키지 형식이 아닌 경우 빈 결과가 반환됩니다.
제공된 패키지 형식이 비어 있으면 필터가 적용되지 않습니다. 즉, packageType
매개 변수에 값을 전달하지 않으면 매개 변수가 전달되지 않은 것처럼 동작합니다.
응답
응답은 최대 take
자동 완성 결과를 포함하는 JSON 문서입니다.
루트 JSON 개체에는 다음 속성이 있습니다.
속성 | Type | Required | 주의 |
---|---|---|---|
totalHits | 정수 | 예 | skip 및 take 를 무시하는 총 일치 항목 수 |
데이터 | 문자열 배열 | 예 | 요청과 일치하는 패키지 ID |
샘플 요청
GET https://search-sample.nuget.org/autocomplete?q=storage&prerelease=true
기본 URL 섹션에 멘션 대로 서비스 인덱스에서 기본 URL(https://search-sample.nuget.org/autocomplete
이 샘플)을 가져와야 합니다.
샘플 응답
{
"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"
]
}
패키지 버전 열거
이전 API를 사용하여 패키지 ID가 검색되면 클라이언트는 자동 완성 API를 사용하여 제공된 패키지 ID에 대한 패키지 버전을 열거할 수 있습니다.
목록에 없는 패키지 버전은 결과에 표시되지 않습니다.
GET {@id}?id={ID}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}
요청 매개 변수
속성 | In | Type | Required | 주의 |
---|---|---|---|---|
id | URL | string | 예 | 버전을 가져올 패키지 ID |
시험판 | URL | 부울 값 | 아니요 | 시험판 패키지를 포함시킬지 여부를 결정하는 true 또는 false |
semVerLevel | URL | string | 아니요 | SemVer 2.0.0 버전 문자열 |
prerelease
를 제공하지 않으면 시험판 패키지가 제외됩니다.
semVerLevel
쿼리 매개 변수는 SemVer 2.0.0 패키지를 옵트인하는 데 사용됩니다. 이 쿼리 매개 변수가 제외되면 SemVer 1.0.0 버전만 반환됩니다. semVerLevel=2.0.0
를 제공하면 SemVer 1.0.0 및 SemVer 2.0.0 버전이 모두 반환됩니다. 자세한 내용은 nuget.org의 SemVer 2.0.0 지원을 참조하세요.
응답
응답은 지정된 쿼리 매개 변수를 기준으로 필터링하여 제공된 패키지 ID의 모든 패키지 버전을 포함하는 JSON 문서입니다.
루트 JSON 개체에는 다음 속성이 있습니다.
속성 | Type | Required | 주의 |
---|---|---|---|
데이터 | 문자열 배열 | 예 | 요청과 일치 하는 패키지 버전 |
semVerLevel=2.0.0
가 쿼리 문자열에 제공되는 경우 data
배열의 패키지 버전에는 SemVer 2.0.0 빌드 메타데이터(예: 1.0.0+metadata
)가 포함될 수 있습니다.
샘플 요청
GET https://api-v2v3search-0.nuget.org/autocomplete?id=nuget.protocol&prerelease=true
샘플 응답
{
"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"
]
}