プッシュと削除
NuGet V3 API を使用して、パッケージをプッシュ、削除 (またはサーバーの実装によってはリストから解除)、再度リストに登録することができます。 これらの操作は、サービス インデックスで見つかった PackagePublish
リソースに基づいています。
次の @type
値が使用されます。
@type 値 | メモ |
---|---|
PackagePublish/2.0.0 | 初期リリース |
次の API のベース URL は、パッケージ ソースのサービス インデックスにある、PackagePublish/2.0.0
リソースの @id
プロパティの値です。 以下のドキュメントでは、nuget.org の URL が使用されています。 サービス インデックスに含まれる @id
値のプレースホルダーととして https://www.nuget.org/api/v2/package
を検討してください。
プロトコルが同じであるため、この URL は従来の V2 プッシュ エンドポイントと同じ場所を指すことに注意してください。
このリソースでは PUT
、POST
、および DELETE
HTTP メソッドがサポートされています。 各エンドポイントでサポートされているメソッドについては、以下を参照してください。
注意
nuget.org には、プッシュ エンドポイントとやり取りするための追加要件があります。
nuget.org では、次の API を使用した新しいパッケージのプッシュがサポートされています。 指定された ID とバージョンのパッケージが既に存在する場合、nuget.org はプッシュを拒否します。 他のパッケージ ソースでは、既存のパッケージの置き換えをサポートしている場合があります。
PUT https://www.nuget.org/api/v2/package
名前 | / | タイプ | 必須 | メモ |
---|---|---|---|---|
X-NuGet-ApiKey | ヘッダー | string | はい | たとえば、X-NuGet-ApiKey: {USER_API_KEY} のように指定します。 |
API キーは、ユーザーによってパッケージ ソースから取得され、クライアントで構成された Opaque な文字列です。 特定の文字列形式は必須ではありませんが、API キーの長さは、HTTP ヘッダー値の妥当なサイズを超えないようにする必要があります。
要求本文は次の形式になる必要があります。
要求ヘッダー Content-Type
は multipart/form-data
で、要求本文の最初の項目は、プッシュされる .nupkg の未加工バイトです。 マルチパート本文の後続の項目は無視されます。 マルチパート項目のファイル名などのヘッダーはすべて無視されます。
状態コード | 意味 |
---|---|
201、202 | パッケージが正常にプッシュされました |
400 | 指定されたパッケージは無効です |
409 | 指定された ID とバージョンのパッケージが既に存在します |
サーバーの実装は、パッケージが正常にプッシュされたときに返される成功の状態コードによって異なります。
nuget.org は、パッケージ削除要求を「リストから解除」と解釈します。 つまり、パッケージはパッケージの既存のコンシューマーで引き続き使用できますが、パッケージは検索結果やウェブ インターフェイスに表示されなくなります。 この方法の詳細については、「パッケージを削除する」ポリシーを参照してください。 その他のサーバー実装では、このシグナルを、物理的な削除とも、論理的な削除とも、リスト解除とも、自由に解釈できます。 たとえば、NuGet.Server (以前の V2 API のみをサポートするサーバー実装) では、構成オプションに基づいてこの要求をリスト解除または物理的な削除として処理できます。
DELETE https://www.nuget.org/api/v2/package/{ID}/{VERSION}
名前 | / | タイプ | 必須 | メモ |
---|---|---|---|---|
ID | URL | string | はい | 削除するパッケージの ID |
VERSION | URL | string | はい | 削除するパッケージのバージョン |
X-NuGet-ApiKey | ヘッダー | string | はい | たとえば、X-NuGet-ApiKey: {USER_API_KEY} のように指定します。 |
状態コード | 意味 |
---|---|
204 | パッケージが削除されました |
404 | 指定された ID と VERSION のパッケージが存在しません |
パッケージがリストに登録されていない場合は、"再リスト" エンドポイントを使用して、そのパッケージを検索結果に再び表示できます。 このエンドポイントの形状は削除 (リスト解除) エンドポイントと同じですが、DELETE
メソッドの代わりに POST
HTTP メソッドを使用します。
パッケージが既にリストに登録されている場合でも、要求は成功します。
POST https://www.nuget.org/api/v2/package/{ID}/{VERSION}
名前 | / | タイプ | 必須 | メモ |
---|---|---|---|---|
ID | URL | string | はい | リストに再登録するパッケージの ID |
VERSION | URL | string | はい | リストに再登録するパッケージのバージョン |
X-NuGet-ApiKey | ヘッダー | string | はい | たとえば、X-NuGet-ApiKey: {USER_API_KEY} のように指定します。 |
状態コード | 意味 |
---|---|
200 | パッケージがリストに登録されました |
404 | 指定された ID と VERSION のパッケージが存在しません |