nuget.org 상호 작용하려면 클라이언트가 특정 프로토콜을 따라야 합니다. 이러한 프로토콜은 계속 발전하기 때문에 클라이언트는 특정 nuget.org API를 호출할 때 사용하는 프로토콜 버전을 식별해야 합니다. 이렇게 하면 nuget.org 이전 클라이언트에 대한 호환성이 손상되지 않는 방식으로 변경 내용을 도입할 수 있습니다.
비고
이 페이지에 설명된 API는 nuget.org 관련되며 다른 NuGet 서버 구현에서 이러한 API를 도입할 것으로 기대되지 않습니다.
NuGet 에코시스템 전체에서 광범위하게 구현되는 NuGet API에 대한 자세한 내용은 API 개요를 참조하세요.
이 항목에서는 다양한 프로토콜이 존재하게 될 때마다 나열됩니다.
NuGet 프로토콜 버전 4.1.0
4.1.0 프로토콜은 nuget.org 계정에 대해 패키지의 유효성을 검사하기 위해 nuget.org 이외의 서비스와 상호 작용하는 확인 범위 키의 사용을 지정합니다.
4.1.0 버전 번호는 불투명 문자열이지만 이 프로토콜을 지원하는 공식 NuGet 클라이언트의 첫 번째 버전과 일치합니다.
유효성 검사를 통해 사용자가 만든 API 키는 nuget.org에서만 사용되며, 타사 서비스의 다른 확인 또는 유효성 검사는 일회성 검증 범위 키를 통해 처리됩니다. 이러한 확인 범위 키를 사용하여 패키지가 nuget.org 특정 사용자(계정)에 속하는지 확인할 수 있습니다.
클라이언트 요구 사항
클라이언트는 패키지를 nuget.org 푸시 하기 위해 API 호출을 수행할 때 다음 헤더를 전달해야 합니다.
X-NuGet-Protocol-Version: 4.1.0
헤더의 X-NuGet-Client-Version 의미 체계는 비슷하지만 공식 NuGet 클라이언트에서만 사용하도록 예약되어 있습니다. 타사 클라이언트는 X-NuGet-Protocol-Version 헤더와 값을 사용해야 합니다.
푸시 프로토콜 자체는 리소스 설명서PackagePublish에 설명되어 있습니다.
클라이언트가 외부 서비스와 상호 작용하고 패키지가 특정 사용자(계정)에 속하는지 확인해야 하는 경우 다음 프로토콜을 사용하고 nuget.org API 키가 아닌 확인 범위 키를 사용해야 합니다.
확인 범위 키를 요청하는 API
이 API는 nuget.org 작성자가 소유한 패키지의 유효성을 검사하기 위한 확인 범위 키를 가져오는 데 사용됩니다.
POST api/v2/package/create-verification-key/{ID}/{VERSION}
요청 매개 변수
| 이름 | In | 유형 | 필수 | 비고 |
|---|---|---|---|---|
| 아이디 | URL | 문자열 | yes | 확인 범위 키가 요청되는 패키지 식별자 |
| VERSION | URL | 문자열 | no | 패키지 버전 |
| X-NuGet-ApiKey | Header | 문자열 | yes | 예를 들어 X-NuGet-ApiKey: {USER_API_KEY} |
응답
{
"Key": "{Verify scope key from nuget.org}",
"Expires": "{Date}"
}
범위 확인 키를 확인하는 API
이 API는 nuget.org 작성자가 소유한 패키지에 대한 확인 범위 키의 유효성을 검사하는 데 사용됩니다.
GET api/v2/verifykey/{ID}/{VERSION}
요청 매개 변수
| 이름 | In | 유형 | 필수 | 비고 |
|---|---|---|---|---|
| 아이디 | URL | 문자열 | yes | 범위 확인 키가 요청되는 패키지 식별자입니다. |
| VERSION | URL | 문자열 | no | 패키지 버전 |
| X-NuGet-ApiKey | Header | 문자열 | yes | 예를 들어 X-NuGet-ApiKey: {VERIFY_SCOPE_KEY} |
비고
이 확인 범위 API 키는 하루 후 또는 처음 사용 시 만료되며, 둘 중 먼저 발생하는 경우에 만료됩니다.
응답
| 상태 코드 | Meaning |
|---|---|
| 200 | API 키가 유효합니다. |
| 403 | API 키가 잘못되었거나 패키지에 대해 푸시할 권한이 없습니다. |
| 404 |
ID (및 VERSION 선택 사항)로 참조한 패키지가 존재하지 않습니다. |