オートコンプリート

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 メソッド GETHEAD をサポートしています。

パッケージの ID の検索

最初のオートコンプリート API では、パッケージ ID 文字列の一部の検索がサポートされています。 これは、NuGet パッケージ ソースと統合されたユーザー インターフェイスでパッケージ先行入力機能を提供する場合に最適です。

一覧に表示されていないバージョンのみを含むパッケージは、結果に表示されません。

GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}

要求パラメーター

名前 / タイプ 必須 メモ
q URL string いいえ パッケージ ID と比較する文字列
skip URL integer いいえ 改ページのためにスキップする結果の数
take URL integer いいえ 改ページのために戻す結果の数
プレリリース URL boolean いいえ プレリリース パッケージを含めるかどうかを決定する 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 パラメーターを使用すると、オートコンプリートの結果をさらにフィルター処理し、パッケージの種類名に一致するパッケージの種類を少なくとも 1 つ含むパッケージに限定されます。 指定されたパッケージの種類が、パッケージの種類ドキュメントで定義されている有効なパッケージの種類ではない場合は、空の結果が返されます。 指定されたパッケージの種類が空の場合、フィルターは適用されません。 つまり、packageType パラメーターに値を渡さない場合、パラメーターが渡されていない場合と同様に動作します。

回答

応答は、take までのオートコンプリート結果を含む JSON ドキュメントです。

ルートの JSON オブジェクトには、以下のプロパティがあります。

名前 タイプ 必須 メモ
totalHits integer はい skip および take を無視した一致の総数
data 文字列の配列 はい 要求と一致するパッケージ 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}

要求パラメーター

名前 / タイプ 必須 メモ
ID URL string はい バージョンをフェッチするパッケージ ID
プレリリース URL boolean いいえ プレリリース パッケージを含めるかどうかを決定する 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 オブジェクトには、以下のプロパティがあります。

名前 タイプ 必須 メモ
data 文字列の配列 はい 要求と一致するパッケージのバージョン

クエリ文字列に 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"
  ]
}