Sök

Det går att söka efter paket som är tillgängliga på en paketkälla med hjälp av V3-API:et. Resursen som används för sökning är resursen SearchQueryService som finns i tjänstindexet.

Versionshantering

Följande @type värden används:

@type, värde Notes
SearchQueryService Den första versionen
SearchQueryService/3.0.0-beta Alias för SearchQueryService
SearchQueryService/3.0.0-rc Alias för SearchQueryService
SearchQueryService/3.5.0 Innehåller stöd för packageType frågeparameter

SearchQueryService/3.5.0

Den här versionen introducerar stöd för packageType frågeparametern och svarsegenskapen packageTypes , vilket tillåter filtrering efter redigeringsdefinierade pakettyper. Den är helt bakåtkompatibel med frågor till SearchQueryService.

Bas-webbadress

Bas-URL:en för följande API är värdet för egenskapen @id som är associerad med något av ovan nämnda resursvärden @type . I följande dokument används platshållarbas-URL:en {@id} . Bas-URL:en kan ändras baserat på implementerings- eller infrastrukturändringar i paketkällan, så den måste hämtas dynamiskt från tjänstindexet av klientprogramvaran.

HTTP-metoder

Alla URL:er som finns i registreringsresursen stöder HTTP-metoderna GET och HEAD.

Sök efter paket

Med sök-API:et kan en klient fråga efter en sida med paket som matchar en angiven sökfråga. Tolkningen av sökfrågan (t.ex. tokeniseringen av söktermer) bestäms av serverimplementeringen, men den allmänna förväntan är att sökfrågan används för matchande paket-ID:n, rubriker, beskrivningar och taggar. Andra fält för paketmetadata kan också övervägas.

Ett ej listat paket bör aldrig visas i sökresultaten.

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

Parametrar för begäran

Name I Typ Obligatoriskt Notes
q URL snöre no Söktermer som används för att filtrera paket
skip URL integer no Antalet resultat som ska hoppas över för sidnumrering
take URL integer no Antalet resultat som ska returneras för sidnumrering
förhandsversion URL boolean no true eller false avgöra om du vill ta med förhandsversionspaket
semVerLevel URL snöre no En SemVer 1.0.0-versionssträng
pakettyp URL snöre no Pakettypen som ska användas för att filtrera paket (läggs till i SearchQueryService/3.5.0)

Sökfrågan q parsas på ett sätt som definieras av serverimplementeringen. nuget.org stöder grundläggande filtrering på en mängd olika fält. Om inget q anges ska alla paket returneras inom de gränser som anges av hoppa över och ta. Detta aktiverar fliken "Bläddra" i NuGet-Visual Studio-upplevelsen.

Parametern skip är som standard 0.

Parametern take ska vara ett heltal som är större än noll. Serverimplementeringen kan medföra ett maximalt värde.

Note

nuget.org begränsar parametern skip till 3 000 och parametern take till 1 000.

Om prerelease inte anges undantas förhandsversionspaket.

Frågeparametern semVerLevel används för att välja SemVer 2.0.0-paket. Om den här frågeparametern undantas returneras endast paket med SemVer 1.0.0-kompatibla versioner (med standardagrottor för NuGet-versionshantering , till exempel versionssträngar med 4 heltalsdelar). Om semVerLevel=2.0.0 anges returneras både SemVer 1.0.0- och SemVer 2.0.0-kompatibla paket. Mer information finns i SemVer 2.0.0-supporten för nuget.org .

Parametern packageType används för att ytterligare filtrera sökresultaten till endast paket som har minst en pakettyp som matchar pakettypens namn. Om den angivna pakettypen inte är en giltig pakettyp enligt definitionen i dokumentet Pakettyp returneras ett tomt resultat. Om den angivna pakettypen är tom tillämpas inget filter. Med andra ord fungerar det som om parametern inte skickades om inget värde skickades till parametern packageType.

Svar

Svaret är JSON-dokument som innehåller upp till take sökresultat. Sökresultat grupperas efter paket-ID.

JSON-rotobjektet har följande egenskaper:

Name Typ Obligatoriskt Notes
totalHits integer yes Det totala antalet matchningar, utan hänsyn till skip och take
data en matris med objekt yes Sökresultaten som matchas av begäran

Sökresultat

Varje objekt i matrisen data är ett JSON-objekt som består av en grupp paketversioner som delar samma paket-ID. Objektet har följande egenskaper:

Name Typ Obligatoriskt Notes
id snöre yes ID:t för det matchade paketet
version snöre yes Den fullständiga SemVer 2.0.0-versionssträngen för paketet (kan innehålla kompileringsmetadata)
description snöre no
föråldring object no Utfasningen som är associerad med den senaste paketversionen
versions en matris med objekt yes Alla versioner av paketet som matchar parametern prerelease
authors sträng eller matris med strängar no
iconUrl snöre no
licenseUrl snöre no
ägare sträng eller matris med strängar no En sträng representerar en enskild ägares användarnamn
projectUrl snöre no
registrering snöre no Den absoluta URL:en till det associerade registreringsindexet
summary snöre no
tags sträng eller matris med strängar no
title snöre no
totalDownloads integer no Det här värdet kan härledas av summan av nedladdningar i matrisen versions
Verifierat boolean no Ett JSON-booleskt värde som anger om paketet har verifierats
Sårbarheter en matris med objekt no Kända säkerhetsrisker som är associerade med den senaste paketversionen
packageTypes en matris med objekt yes Pakettyperna som definieras av paketförfattaren (läggs till i SearchQueryService/3.5.0)

På nuget.org är ett verifierat paket ett paket-ID som matchar ett reserverat ID-prefix och ägs av en av ägarna till det reserverade prefixet. Mer information finns i dokumentationen om ID-prefixreservation.

Metadata som finns i sökresultatobjektet hämtas från den senaste paketversionen. Varje objekt i matrisen versions är ett JSON-objekt med följande egenskaper:

Name Typ Obligatoriskt Notes
@id snöre yes Den absoluta URL:en till det associerade registreringsbladet
version snöre yes Den fullständiga SemVer 2.0.0-versionssträngen för paketet (kan innehålla kompileringsmetadata)
Nedladdningar integer yes Antalet nedladdningar för den här specifika paketversionen

Utfasning av paket

Objektet deprecation har följande egenskaper:

Name Typ Obligatoriskt Notes
Skäl strängmatris yes Anledningen till att paketet var inaktuellt
message snöre no Ytterligare information om utfasningen
alternatePackage object no Det alternativa paketet som ska användas i stället

Matrisen reasons innehåller minst ett av de värden som dokumenteras i Paketutfasning.

Objektet alternatePackage har följande egenskaper:

Name Typ Obligatoriskt Notes
id snöre yes ID för det alternativa paketet
range snöre no Det tillåtna versionsintervallet eller * om någon version tillåts

Sårbarheter

Varje objekt i matrisen vulnerabilities är ett JSON-objekt med följande egenskaper:

Name Typ Obligatoriskt Notes
advisoryUrl snöre yes URL:en för säkerhetsrådgivningen för paketet
severity integer yes Den rådgivande allvarlighetsgraden: 0 = Låg, 1 = Måttlig, 2 = Hög och 3 = Kritisk

Matrisen är tom när den senaste paketversionen inte har några kända säkerhetsrisker.

Matrisen packageTypes består alltid av minst ett (1) objekt. Pakettypen för ett visst paket-ID anses vara de pakettyper som definieras av den senaste versionen av paketet med avseende på de andra sökparametrarna. Varje objekt i matrisen packageTypes är ett JSON-objekt med följande egenskaper:

Name Typ Obligatoriskt Notes
Namn snöre yes Namnet på pakettypen.

Exempelbegäran

GET https://search-sample.nuget.org/query?q=NuGet.Versioning&prerelease=false&semVerLevel=2.0.0

Se till att hämta bas-URL:en (https://search-sample.nuget.org/query i det här exemplet) från tjänstindexet enligt beskrivningen i avsnittet grundläggande URL .

Exempelsvar

{
  "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"
        }
      ]
    }
  ]
}