次の方法で共有


Service index

サービス インデックスは、NuGet パッケージ ソースのエントリ ポイントである JSON ドキュメントであり、クライアント実装がパッケージ ソースの機能を検出できるようにします。 サービス インデックスは、 version (サービス インデックスのスキーマ バージョン) と resources (パッケージ ソースのエンドポイントまたは機能) の 2 つの必須プロパティを持つ JSON オブジェクトです。

nuget.org のサービス インデックスは、 https://api.nuget.org/v3/index.jsonにあります。

Versioning

version値は、サービス インデックスのスキーマ バージョンを示す SemVer 2.0.0 解析可能なバージョン文字列です。 この API では、バージョン文字列にメジャー バージョン番号の 3が必要です。 サービス インデックス スキーマに破壊的変更が加えられると、バージョン文字列のマイナー バージョンが増加します。

サービス インデックス内の各リソースは、サービス インデックス スキーマのバージョンとは別にバージョン管理されます。

現在のスキーマ バージョンが 3.0.03.0.0バージョンは機能的には古い3.0.0-beta.1バージョンと同等ですが、安定した定義されたスキーマをより明確に伝達するため、推奨する必要があります。

HTTP methods

サービス インデックスには、HTTP メソッド GET および HEADを使用してアクセスできます。

Resources

resources プロパティには、このパッケージ ソースでサポートされているリソースの配列が含まれています。

Resource

リソースは、 resources 配列内のオブジェクトです。 これは、パッケージ ソースのバージョン管理された機能を表します。 リソースには、次のプロパティがあります。

Name タイプ Required Notes
@id 文字列 yes リソースの URL
@type 文字列 yes リソースの種類を表す文字列定数
コメント 文字列 no リソースの人間が判読できる説明

@idは、絶対 URL である必要があり、HTTP または HTTPS スキーマを持っている必要があります。

@typeは、リソースを操作するときに使用する特定のプロトコルを識別するために使用されます。 リソースの型は不透明な文字列ですが、通常は次の形式になります。

{RESOURCE_NAME}/{RESOURCE_VERSION}

クライアントは、パッケージ ソースのサービス インデックスで理解して検索する @type 値をハード コーディングすることが期待されます。 現在使用されている正確な @type 値は、 API の概要に記載されている個々のリソース参照ドキュメントに列挙されています。

このドキュメントのために、さまざまなリソースに関するドキュメントは、基本的に、シナリオ別のグループ化に似たサービス インデックスにある {RESOURCE_NAME} によってグループ化されます。

各リソースに一意の @id または @typeがある必要はありません。 別のリソースよりも優先するリソースを決定するのは、クライアントの実装によって決まります。 可能な実装の 1 つは、接続エラーやサーバー エラーが発生した場合に、同じまたは互換性のある @type のリソースをラウンド ロビン方式で使用できることです。

リソースでは、サービス インデックスとは異なるホストまたはドメインを使用できますが、これにより、厳密なネットワーク規則を使用する環境で問題が発生する可能性があります。 特に、サービス インデックスが (独自のフィードを介したプロキシまたはキャッシュではなく) nuget.org を直接指すリソースを追加する場合、nuget.org へのアクセスがブロックされている場合、フィードは機能しません。 フィードが特定のリソースを nuget.org に委任する場合は、フィードをデプロイするときに、直接 nuget.org 参照をサービス インデックスから削除できるように構成を追加することをお勧めします。

Sample request

GET https://api.nuget.org/v3/index.json

Sample response

{
  "version": "3.0.0",
  "resources": [
    {
      "@id": "https://api.nuget.org/v3-flatcontainer/",
      "@type": "PackageBaseAddress/3.0.0",
      "comment": "Base URL of Azure storage where NuGet package registration info for NET Core is stored, in the format https://api.nuget.org/v3-flatcontainer/{id-lower}/{id-lower}.{version-lower}.nupkg"
    },
    {
      "@id": "https://www.nuget.org/api/v2/package",
      "@type": "PackagePublish/2.0.0"
    },
    {
      "@id": "https://api-v2v3search-0.nuget.org/query",
      "@type": "SearchQueryService/3.0.0-rc",
      "comment": "Query endpoint of NuGet Search service (primary) used by RC clients"
    },
    {
      "@id": "https://api-v2v3search-0.nuget.org/autocomplete",
      "@type": "SearchAutocompleteService/3.0.0-rc",
      "comment": "Autocomplete endpoint of NuGet Search service (primary) used by RC clients"
    },
    {
      "@id": "https://api.nuget.org/v3/registration2/",
      "@type": "RegistrationsBaseUrl/3.0.0-rc",
      "comment": "Base URL of Azure storage where NuGet package registration info is stored used by RC clients. This base URL does not include SemVer 2.0.0 packages."
    }
  ]
}