Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Istnieje możliwość wyszukiwania pakietów dostępnych w źródle pakietu przy użyciu interfejsu API w wersji 3. Zasób używany do wyszukiwania to zasób znaleziony SearchQueryService w indeksie usługi.
Wersjonowanie
Używane są następujące @type wartości:
| Wartość: @type | Notes |
|---|---|
| SearchQueryService | Wersja początkowa |
| SearchQueryService/3.0.0-beta | Alias of SearchQueryService |
| SearchQueryService/3.0.0-rc | Alias of SearchQueryService |
| SearchQueryService/3.5.0 | Obejmuje obsługę parametru packageType zapytania |
SearchQueryService/3.5.0
Ta wersja wprowadza obsługę parametru packageType zapytania i packageTypes właściwości odpowiedzi, umożliwiając filtrowanie według zdefiniowanych typów pakietów autorów. Jest ona w pełni zgodna z poprzednimi wersjami zapytań do SearchQueryService.
Podstawowy adres URL
Podstawowy adres URL następującego interfejsu API to wartość @id właściwości skojarzonej z jedną z wyżej wymienionych wartości zasobów @type . W poniższym dokumencie zostanie użyty podstawowy adres URL {@id} symbolu zastępczego. Podstawowy adres URL może ulec zmianie na podstawie implementacji lub zmian infrastruktury w źródle pakietu, dlatego musi być dynamicznie pobierany z indeksu usługi przez oprogramowanie klienckie.
Metody HTTP
Wszystkie adresy URL znalezione w zasobie rejestracji obsługują metody GET HTTP i HEAD.
Wyszukiwanie pakietów
Interfejs API wyszukiwania umożliwia klientowi wykonywanie zapytań dotyczących strony pakietów pasujących do określonego zapytania wyszukiwania. Interpretacja zapytania wyszukiwania (np. tokenizacja terminów wyszukiwania) jest określana przez implementację serwera, ale ogólne oczekiwania polegają na tym, że zapytanie wyszukiwania jest używane do dopasowywania identyfikatorów pakietów, tytułów, opisów i tagów. Można również rozważyć inne pola metadanych pakietu.
Pakiet nie wymieniony nigdy nie powinien być wyświetlany w wynikach wyszukiwania.
GET {@id}?q={QUERY}&skip={SKIP}&take={TAKE}&prerelease={PRERELEASE}&semVerLevel={SEMVERLEVEL}&packageType={PACKAGETYPE}
Parametry żądania
| Name | W | Typ | Wymagane | Notes |
|---|---|---|---|---|
| q | adres URL | ciąg | no | Terminy wyszukiwania używane do filtrowania pakietów |
| pominąć | adres URL | liczba całkowita | no | Liczba wyników do pominięcia w przypadku stronicowania |
| wziąć | adres URL | liczba całkowita | no | Liczba wyników do zwrócenia w przypadku stronicowania |
| w wersji wstępnej | adres URL | boolean | no |
true lub false określenie, czy należy uwzględnić pakiety wersji wstępnej |
| semVerLevel | adres URL | ciąg | no | Ciąg wersji SemVer 1.0.0 |
| typ pakietu | adres URL | ciąg | no | Typ pakietu używany do filtrowania pakietów (dodany w SearchQueryService/3.5.0pliku ) |
Zapytanie q wyszukiwania jest analizowane w sposób zdefiniowany przez implementację serwera. nuget.org obsługuje podstawowe filtrowanie w różnych polach. Jeśli nie q zostanie podany, należy zwrócić wszystkie pakiety w granicach narzuconych przez pomijanie i przejmowanie. Spowoduje to włączenie karty "Przeglądaj" w środowisku Visual Studio NuGet.
Wartość domyślna parametru skip to 0.
Parametr take powinien być liczbą całkowitą większą niż zero. Implementacja serwera może narzucić maksymalną wartość.
Note
nuget.org ogranicza skip parametr do 3000, a take parametr do 1000.
Jeśli prerelease nie zostanie podana, pakiety wersji wstępnej zostaną wykluczone.
Parametr semVerLevel zapytania służy do wyrażenia zgody na pakiety SemVer 2.0.0.
Jeśli ten parametr zapytania zostanie wykluczony, zostaną zwrócone tylko pakiety z zgodnymi wersjami SemVer 1.0.0 (ze standardowymi zastrzeżeniami obsługi wersji NuGet , takimi jak ciągi wersji z 4 liczbami całkowitymi).
Jeśli semVerLevel=2.0.0 zostanie podana wartość, zostaną zwrócone pakiety zgodne z standardem SemVer 1.0.0 i SemVer 2.0.0. Aby uzyskać więcej informacji, zobacz obsługę programu SemVer 2.0.0 w celu uzyskania nuget.org .
Parametr packageType służy do dalszego filtrowania wyników wyszukiwania tylko do pakietów, które mają co najmniej jeden typ pakietu pasujący do nazwy typu pakietu.
Jeśli podany typ pakietu nie jest prawidłowym typem pakietu zdefiniowanym przez dokument Typ pakietu, zostanie zwrócony pusty wynik.
Jeśli podany typ pakietu jest pusty, nie zostanie zastosowany żaden filtr. Innymi słowy przekazywanie żadnej wartości do parametru packageType będzie zachowywać się tak, jakby parametr nie został przekazany.
Odpowiedź
Odpowiedź to dokument JSON zawierający take wyniki wyszukiwania. Wyniki wyszukiwania są grupowane według identyfikatora pakietu.
Główny obiekt JSON ma następujące właściwości:
| Name | Typ | Wymagane | Notes |
|---|---|---|---|
| totalHits | liczba całkowita | yes | Łączna liczba dopasowań, lekceważenie skip i take |
| dane | tablica obiektów | yes | Wyniki wyszukiwania dopasowane przez żądanie |
Wynik wyszukiwania
Każdy element w tablicy data jest obiektem JSON składającym się z grupy wersji pakietów współużytkujących ten sam identyfikator pakietu.
Obiekt ma następujące właściwości:
| Name | Typ | Wymagane | Notes |
|---|---|---|---|
| id | ciąg | yes | Identyfikator dopasowanego pakietu |
| wersja | ciąg | yes | Pełny ciąg wersji SemVer 2.0.0 pakietu (może zawierać metadane kompilacji) |
| Opis | ciąg | no | |
| Wycofanie | obiekt | no | Wycofanie skojarzone z najnowszą wersją pakietu |
| versions | tablica obiektów | yes | Wszystkie wersje pakietu pasujące do parametru prerelease |
| authors | ciąg lub tablica ciągów | no | |
| iconUrl (adres URL ikony) | ciąg | no | |
| licenseUrl | ciąg | no | |
| Właścicieli | ciąg lub tablica ciągów | no | Ciąg reprezentuje nazwę użytkownika pojedynczego właściciela |
| projectUrl | ciąg | no | |
| rejestracja | ciąg | no | Bezwzględny adres URL skojarzonego indeksu rejestracji |
| podsumowanie | ciąg | no | |
| tags | ciąg lub tablica ciągów | no | |
| title | ciąg | no | |
| totalDownloads | liczba całkowita | no | Tę wartość można wywnioskować sumą pobrań w tablicy versions |
| Sprawdzonych | boolean | no | Wartość logiczna JSON wskazująca, czy pakiet został zweryfikowany |
| Luki | tablica obiektów | no | Znane luki w zabezpieczeniach skojarzone z najnowszą wersją pakietu |
| packageTypes | tablica obiektów | yes | Typy pakietów zdefiniowane przez autora pakietu (dodane w SearchQueryService/3.5.0pliku ) |
W nuget.org zweryfikowany pakiet jest pakietem, który ma identyfikator pakietu pasujący do prefiksu identyfikatora zarezerwowanego i należący do jednego z właścicieli prefiksu zarezerwowanego. Aby uzyskać więcej informacji, zobacz dokumentację dotyczącą rezerwacji prefiksów identyfikatorów.
Metadane zawarte w obiekcie wyników wyszukiwania są pobierane z najnowszej wersji pakietu. Każdy element w tablicy versions jest obiektem JSON o następujących właściwościach:
| Name | Typ | Wymagane | Notes |
|---|---|---|---|
| @id | ciąg | yes | Bezwzględny adres URL skojarzonego liścia rejestracji |
| wersja | ciąg | yes | Pełny ciąg wersji SemVer 2.0.0 pakietu (może zawierać metadane kompilacji) |
| Pobieranie | liczba całkowita | yes | Liczba pobrań dla tej konkretnej wersji pakietu |
Wycofanie pakietu
Obiekt deprecation ma następujące właściwości:
| Name | Typ | Wymagane | Notes |
|---|---|---|---|
| Powodów | tablica ciągów | yes | Przyczyny, dla których pakiet został przestarzały |
| komunikat | ciąg | no | Dodatkowe szczegóły dotyczące wycofywania |
| alternatePackage | obiekt | no | Alternatywny pakiet do użycia |
Tablica reasons zawiera co najmniej jedną z wartości udokumentowanych w artykule Wycofywanie pakietu.
Obiekt alternatePackage ma następujące właściwości:
| Name | Typ | Wymagane | Notes |
|---|---|---|---|
| id | ciąg | yes | Identyfikator pakietu alternatywnego |
| zakres | ciąg | no | Dozwolony zakres wersji lub * dozwolona wersja |
luki bezpieczeństwa
Każdy element w tablicy vulnerabilities jest obiektem JSON o następujących właściwościach:
| Name | Typ | Wymagane | Notes |
|---|---|---|---|
| advisoryUrl | ciąg | yes | Adres URL biuletynu zabezpieczeń pakietu |
| severity | liczba całkowita | yes | Ważność porady: 0 = Niska, 1 = Umiarkowana, 2 = Wysoka i 3 = Krytyczne |
Tablica jest pusta, gdy najnowsza wersja pakietu nie ma znanych luk w zabezpieczeniach.
Tablica packageTypes zawsze będzie składać się z co najmniej jednego (1) elementu. Typ pakietu dla danego identyfikatora pakietu jest uważany za typy pakietów zdefiniowane przez najnowszą wersję pakietu w odniesieniu do innych parametrów wyszukiwania. Każdy element w tablicy packageTypes jest obiektem JSON o następujących właściwościach:
| Name | Typ | Wymagane | Notes |
|---|---|---|---|
| nazwa | ciąg | yes | Nazwa typu pakietu. |
Przykładowe żądanie
GET https://search-sample.nuget.org/query?q=NuGet.Versioning&prerelease=false&semVerLevel=2.0.0
Pamiętaj, aby pobrać podstawowy adres URL (https://search-sample.nuget.org/query w tym przykładzie) z indeksu usługi, jak wspomniano w sekcji podstawowego adresu URL .
Przykładowa odpowiedź
{
"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"
}
]
}
]
}