nuget.org 프로토콜
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 | Type | Required | 주의 |
---|---|---|---|---|
ID | URL | string | 예 | 확인 범위 키가 요청된 패키지 식별자 |
VERSION | URL | string | 아니요 | 패키지 버전 |
X-NuGet-ApiKey | 헤더 | string | 예 | 예를 들어 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 | Type | Required | 주의 |
---|---|---|---|---|
ID | URL | string | 예 | 확인 범위 키가 요청된 패키지 식별자 |
VERSION | URL | string | 아니요 | 패키지 버전 |
X-NuGet-ApiKey | 헤더 | string | 예 | 예를 들어 X-NuGet-ApiKey: {VERIFY_SCOPE_KEY} |
참고 항목
이 확인 범위 API 키는 하루 중 또는 처음 사용될 때(둘 중 먼저 발생 하는 시점) 만료됩니다.
응답
상태 코드 | 의미 |
---|---|
200 | API 키가 유효함 |
403 | API 키가 잘못되었거나 패키지에 대해 푸시할 수 있는 권한이 없습니다. |
404 | ID 및 VERSION (선택 사항)로 참조한 패키지가 없습니다. |