V3 API を使用して、パッケージ ソースで使用可能なパッケージを検索できます。 検索に使用されるリソースは、サービス インデックスで見つかったSearchQueryService リソースです。
Versioning
次の @type 値が使用されます。
| @type 値 | メモ |
|---|---|
| SearchQueryService | 最初のリリース |
| SearchQueryService/3.0.0-beta | エイリアス SearchQueryService |
| SearchQueryService/3.0.0-rc | エイリアス SearchQueryService |
| SearchQueryService/3.5.0 |
packageType クエリ パラメーターのサポートが含まれています |
SearchQueryService/3.5.0
このバージョンでは、 packageType クエリ パラメーターと packageTypes 応答プロパティのサポートが導入され、作成者が定義したパッケージの種類によるフィルター処理が可能になります。
SearchQueryServiceするクエリと完全に下位互換性があります。
基準 URL
次の API のベース URL は、前述のリソース @type値のいずれかに関連付けられている@id プロパティの値です。 次のドキュメントでは、プレースホルダーのベース URL {@id} が使用されます。 ベース URL は、パッケージ ソース内の実装またはインフラストラクチャの変更に基づいて変更される可能性があるため、クライアント ソフトウェアによって サービス インデックス から動的にフェッチされる必要があります。
HTTP メソッド
登録リソースで見つかったすべての URL は、HTTP メソッドの GET と HEADをサポートします。
パッケージを検索する
検索 API を使用すると、クライアントは、指定された検索クエリに一致するパッケージのページを照会できます。 検索クエリの解釈 (検索用語のトークン化など) はサーバーの実装によって決まりますが、一般的な期待は、検索クエリがパッケージ ID、タイトル、説明、タグの照合に使用されるということです。 他のパッケージ メタデータ フィールドも考慮される場合があります。
一覧に含てられていないパッケージが検索結果に表示されることはありません。
GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}
要求パラメーター
| 氏名 | In | タイプ | 必須 | メモ |
|---|---|---|---|---|
| q | URL | 文字列 | no | パッケージのフィルター処理に使用する検索用語 |
| スキップ | URL | 整数 | no | 改ページ位置のスキップする結果の数 |
| 取り出し | URL | 整数 | no | 改ページ位置の返す結果の数 |
| プレリリース | URL | boolean | no |
trueプレリリース パッケージを含めるかどうかを決定するfalse |
| semVerLevel | URL | 文字列 | no | SemVer 1.0.0 バージョン文字列 |
| パッケージタイプ | URL | 文字列 | no | パッケージのフィルター処理に使用するパッケージの種類 ( SearchQueryService/3.5.0 で追加) |
検索クエリ q は、サーバー実装によって定義された方法で解析されます。 nuget.org では、 さまざまなフィールドに対する基本的なフィルター処理がサポートされています。
qが指定されていない場合は、skip and take によって課される境界内ですべてのパッケージを返す必要があります。 これにより、NuGet Visual Studio エクスペリエンスの [参照] タブが有効になります。
skip パラメーターの既定値は 0 です。
take パラメーターは、0 より大きい整数にする必要があります。 サーバーの実装では、最大値が設定される場合があります。
Note
nuget.org では、 skip パラメーターは 3,000 に、 take パラメーターは 1,000 に制限されます。
prereleaseが指定されていない場合、プレリリース パッケージは除外されます。
semVerLevel クエリ パラメーターは、SemVer 2.0.0 パッケージへのオプトインに使用されます。
このクエリ パラメーターが除外されている場合は、SemVer 1.0.0 互換バージョンのパッケージのみが返されます (4 つの整数部分を持つバージョン文字列など、 標準の NuGet バージョン 管理に関する注意事項があります)。
semVerLevel=2.0.0が指定されている場合は、SemVer 1.0.0 と SemVer 2.0.0 互換パッケージの両方が返されます。 詳細については、 nuget.org の SemVer 2.0.0 サポート を参照してください。
packageType パラメーターは、パッケージの種類名と一致するパッケージの種類が少なくとも 1 つのパッケージのみに検索結果をさらにフィルター処理するために使用されます。
指定されたパッケージの種類が、パッケージの種類ドキュメントで定義されている有効な パッケージの種類でない場合は、空の結果が返されます。
指定されたパッケージの種類が空の場合、フィルターは適用されません。 つまり、packageType パラメーターに値を渡さないと、パラメーターが渡されなかったかのように動作します。
応答
応答は、最大 take 検索結果を含む JSON ドキュメントです。 検索結果はパッケージ ID でグループ化されます。
ルート JSON オブジェクトには、次のプロパティがあります。
| 氏名 | タイプ | 必須 | メモ |
|---|---|---|---|
| totalHits | 整数 | yes | 一致の合計数。 skip と take |
| データ | オブジェクトの配列 | yes | 要求によって一致した検索結果 |
検索結果
data配列内の各項目は、同じパッケージ ID を共有するパッケージ バージョンのグループで構成される JSON オブジェクトです。
オブジェクトには、次のプロパティがあります。
| 氏名 | タイプ | 必須 | メモ |
|---|---|---|---|
| 識別子 | 文字列 | yes | 一致したパッケージの ID |
| バージョン | 文字列 | yes | パッケージの完全な SemVer 2.0.0 バージョン文字列 (ビルド メタデータを含む可能性があります) |
| 説明 | 文字列 | no | |
| 廃止 | オブジェクト | no | 最新のパッケージ バージョンに関連付けられている非推奨 |
| versions | オブジェクトの配列 | yes |
prerelease パラメーターに一致するすべてのバージョンのパッケージ |
| authors | 文字列または文字列の配列 | no | |
| iconUrl | 文字列 | no | |
| licenseUrl | 文字列 | no | |
| owners | 文字列または文字列の配列 | no | 1 つの所有者のユーザー名を表す文字列 |
| projectUrl | 文字列 | no | |
| 登録 | 文字列 | no | 関連付けられている登録インデックスへの絶対 URL |
| 概要 | 文字列 | no | |
| tags | 文字列または文字列の配列 | no | |
| title | 文字列 | no | |
| totalDownloads | 整数 | no | この値は、 versions 配列内のダウンロードの合計によって推論できます |
| 検証 | boolean | no | パッケージが検証されているかどうかを示す JSON ブール値 |
| 脆弱 性 | オブジェクトの配列 | no | 最新のパッケージ バージョンに関連付けられている既知のセキュリティの脆弱性 |
| packageTypes | オブジェクトの配列 | yes | パッケージ作成者によって定義されたパッケージの種類 ( SearchQueryService/3.5.0 で追加) |
nuget.org では、検証済みパッケージは、予約 ID プレフィックスと一致し、予約済みプレフィックスの所有者のいずれかが所有するパッケージ ID を持つパッケージです。 詳細については、 ID プレフィックス予約に関するドキュメントを参照してください。
検索結果オブジェクトに含まれるメタデータは、最新のパッケージ バージョンから取得されます。
versions配列内の各項目は、次のプロパティを持つ JSON オブジェクトです。
| 氏名 | タイプ | 必須 | メモ |
|---|---|---|---|
| @id | 文字列 | yes | 関連付けられている登録リーフへの絶対 URL |
| バージョン | 文字列 | yes | パッケージの完全な SemVer 2.0.0 バージョン文字列 (ビルド メタデータを含む可能性があります) |
| ダウンロード | 整数 | yes | この特定のパッケージ バージョンのダウンロード数 |
パッケージの非推奨
deprecation オブジェクトには、次のプロパティがあります。
| 氏名 | タイプ | 必須 | メモ |
|---|---|---|---|
| 理由 | 文字列の配列 | yes | パッケージが非推奨になった理由 |
| メッセージ | 文字列 | no | 非推奨に関する追加の詳細 |
| alternatePackage | オブジェクト | no | 代わりに使用する代替パッケージ |
reasons配列には、「パッケージの廃止」に記載されている値の少なくとも 1 つが含まれています。
alternatePackage オブジェクトには、次のプロパティがあります。
| 氏名 | タイプ | 必須 | メモ |
|---|---|---|---|
| 識別子 | 文字列 | yes | 代替パッケージの ID |
| 範囲 | 文字列 | no | 許可されているバージョンの範囲。または、許可されているバージョンがある場合は* |
脆弱性
vulnerabilities配列内の各項目は、次のプロパティを持つ JSON オブジェクトです。
| 氏名 | タイプ | 必須 | メモ |
|---|---|---|---|
| advisoryUrl | 文字列 | yes | パッケージのセキュリティ アドバイザリの URL |
| severity | 整数 | yes | アドバイザリの重大度: 0 = 低、 1 = 中、 2 = 高、および 3 = 重大 |
最新のパッケージ バージョンに既知の脆弱性がない場合、配列は空です。
packageTypes配列は、常に少なくとも 1 つの項目で構成されます。 特定のパッケージ ID のパッケージの種類は、他の検索パラメーターに関してパッケージの最新バージョンで定義されているパッケージの種類と見なされます。
packageTypes配列内の各項目は、次のプロパティを持つ JSON オブジェクトです。
| 氏名 | タイプ | 必須 | メモ |
|---|---|---|---|
| 名前 | 文字列 | yes | パッケージの種類の名前。 |
サンプル依頼
GET https://search-sample.nuget.org/query?q=NuGet.Versioning&prerelease=false&semVerLevel=2.0.0
ベース URL セクションで説明されているように、サービス インデックスからベース URL (このサンプルでhttps://search-sample.nuget.org/query ) を フェッチしてください。
サンプル応答
{
"totalHits": 2,
"data": [
{
"registration": "https://api.nuget.org/v3/registration-sample/nuget.versioning/index.json",
"id": "NuGet.Versioning",
"version": "4.4.0",
"description": "NuGet's implementation of Semantic Versioning.",
"summary": "",
"title": "NuGet.Versioning",
"licenseUrl": "https://raw.githubusercontent.com/NuGet/NuGet.Client/dev/LICENSE.txt",
"tags": [ "semver", "semantic", "versioning" ],
"authors": [ "NuGet" ],
"totalDownloads": 141896,
"verified": true,
"vulnerabilities": [],
"packageTypes": [
{
"name": "Dependency"
}
],
"versions": [
{
"version": "3.3.0",
"downloads": 50343,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/3.3.0.json"
},
{
"version": "3.4.3",
"downloads": 27932,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/3.4.3.json"
},
{
"version": "4.0.0",
"downloads": 63004,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/4.0.0.json"
},
{
"version": "4.4.0",
"downloads": 617,
"@id": "https://api.nuget.org/v3/registration-sample/nuget.versioning/4.4.0.json"
}
]
},
{
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/index.json",
"@type": "Package",
"registration": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/index.json",
"id": "Nerdbank.GitVersioning",
"version": "2.0.41",
"description": "Stamps your assemblies with semver 2.0 compliant git commit specific version information and provides NuGet versioning information as well.",
"summary": "Stamps your assemblies with semver 2.0 compliant git commit specific version information and provides NuGet versioning information as well.",
"title": "Nerdbank.GitVersioning",
"licenseUrl": "https://raw.githubusercontent.com/AArnott/Nerdbank.GitVersioning/ed547462f7/LICENSE.txt",
"projectUrl": "http://github.com/aarnott/Nerdbank.GitVersioning",
"tags": [ "git", "commit", "versioning", "version", "assemblyinfo" ],
"authors": [ "Andrew Arnott" ],
"totalDownloads": 11906,
"verified": false,
"vulnerabilities": [],
"versions": [
{
"version": "1.6.35",
"downloads": 10229,
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/1.6.35.json"
},
{
"version": "2.0.41",
"downloads": 1677,
"@id": "https://api.nuget.org/v3/registration-sample/nerdbank.gitversioning/2.0.41.json"
}
]
}
]
}