NuGet Server API
NuGet Server API'si paketleri indirmek, meta verileri getirmek, yeni paketler yayımlamak ve resmi istemcilerde kullanılabilen diğer işlemlerin çoğunu gerçekleştirmek için kullanılabilen bir http uç NuGet kümesidir.
Bu API NuGet Visual Studio, nuget.exe ve .NET CLI'daki NuGet istemci tarafından, Visual Studio kullanıcı arabiriminde arama ve gibi NuGet işlemleri dotnet restore gerçekleştirmek için nuget.exe push kullanılır.
Bazı durumlarda, nuget.org diğer paket kaynakları tarafından zorlanmayacak ek gereksinimlere sahip olduğunu unutmayın. Bu farklar, Nuget.org Protokolleri tarafından belgelenmiştir.
Kullanılabilir sürümler için basit bir numaralama ve indirme nuget.exe bkz. tools.json uç noktası.
Hizmet dizini
API'nin giriş noktası, iyi bilinen bir konumdaki bir JSON belgesidir. Bu belge, hizmet dizini olarak adlandırılan bir belgedir. Için hizmet dizininin konumu https://api.nuget.org/v3/index.json nuget.org.
Bu JSON belgesi, farklı işlevler sağlayan ve farklı kullanım durumlarını yerine getiren kaynakların listesini içerir.
API'yi destekleyen istemciler ilgili paket kaynaklarına bağlanmanın bir veya daha fazlasını bu hizmet dizini URL'lerinden birini kabul eder.
Hizmet dizini hakkında daha fazla bilgi için api başvurusuna bakın.
Sürüm Oluşturma
API, NuGet HTTP protokolünün 3. sürümüdür. Bu protokol bazen "V3 API"si olarak adlandırılır. Bu başvuru belgeleri protokolün bu sürümüne yalnızca "API" olarak başvurur.
Hizmet dizini şema sürümü, hizmet version dizininde özelliği tarafından belirtilmiştir. API, sürüm dizesinin ana sürüm numarasına sahip olduğunu zorunlu 3 verir. Hizmet dizini şemasında hataya neden olmayan değişiklikler yapıldı mı, sürüm dizesinin ikincil sürümü artırılacaktır.
Eski istemciler (nuget.exe 2.x gibi) V3 API'sini desteklemez ve yalnızca burada belgelenmiş olan eski V2 API'sini destekler.
NuGet V3 API'si, resmi NuGet istemcisinin 2.x sürümü tarafından uygulanan OData tabanlı protokol olan V2 API'nin ardılı olduğundan bu NuGet adlandırılmıştır. V3 API'si ilk olarak resmi NuGet istemcisinin 3.0 sürümü tarafından desteklendi ve hala NuGet istemcisi 4.0 ve üzerinde desteklenen en son ana protokol sürümüdür.
API'nin ilk yayımdan bu yana hataya neden olmayan protokol değişiklikleri yapıldı.
Kaynaklar ve şema
Hizmet dizini çeşitli kaynakları açıklar. Desteklenen geçerli kaynak kümesi aşağıdaki gibidir:
| Kaynak adı | Gerekli | Açıklama |
|---|---|---|
| Katalog | hayır | Tüm paket olaylarının tam kaydı. |
| PackageBaseAddress | evet | Paket içeriğini al (.nupkg). |
| PackageDetailsUriTemplate | hayır | Paket ayrıntıları web sayfasına erişmek için bir URL oluşturun. |
| PackagePublish | evet | Paketleri itme ve silme (veya listeden silme). |
| RegistrationsBaseUrl | evet | Paket meta verilerini al. |
| ReportAbuseUriTemplate | hayır | Kötüye kullanım raporu web sayfasına erişmek için bir URL oluşturun. |
| RepositorySignatures | hayır | Depo imzalama için kullanılan sertifikaları al. |
| SearchAutocompleteService | hayır | Alt dizeye göre paket kimliklerini ve sürümlerini bulma. |
| SearchQueryService | evet | Anahtar sözcüke göre paketleri filtrele ve ara. |
| SymbolPackagePublish | hayır | Sembol paketlerini itme. |
Genel olarak, bir API kaynağı tarafından döndürülen tüm ikili olmayan veriler JSON kullanılarak seri hale getirilecek. Hizmet dizininde her kaynak tarafından döndürülen yanıt şeması, bu kaynak için ayrı ayrı tanımlanır. Her kaynak hakkında daha fazla bilgi için yukarıda listelenen konulara bakın.
Gelecekte protokol geliştikçe JSON yanıtlarına yeni özellikler eklenebilir. İstemcinin geleceğe dayanıklı olması için uygulama, yanıt şemasının son olduğunu ve ek veri ekleyemzey olduğunu varsaymamalı. Uygulamanın anlamay olduğu tüm özellikler yoksayılır.
Not
Bir kaynak herhangi bir otomatik SearchAutocompleteService tamamlama davranışı uygulamazsa, yetkisiz bir şekilde devre dışı bırakılmıştır. Uygulanmazsa, resmi NuGet istemci nuget.org'un rapor kötüye kullanım URL'sini geri alır ReportAbuseUriTemplateReportAbuseUriTemplatetarafından iz uygulanır). Diğer istemciler, kullanıcıya bir rapor kötüye kullanım URL'si göstermemayı tercih olabilir.
Nuget.org'de belgelenmemiş kaynaklar
Sanal nuget.org V3 hizmet dizini, yukarıda belgelenmiş olan bazı kaynaklara sahip değildir. Kaynağı belgeleyemeyen birkaç neden vardır.
İlk olarak, uygulama ayrıntıları olarak kullanılan kaynakları belgeleye nuget.org. bu SearchGalleryQueryService kategoriye girer. NuGetGallery, veritabanını kullanmak yerine arama dizinimize bazı V2 (OData) sorgularını temsilci olarak almak için bu kaynağı kullanır. Bu kaynak ölçeklenebilirlik nedenleriyle ortaya çıktı ve dış kullanım için amaçlanmaz.
İkinci olarak, hiçbir zaman resmi istemcinin RTM sürümünde hiçbir zaman gönderilen kaynakları belgeleye girmeziz.
PackageDisplayMetadataUriTemplate ve PackageVersionDisplayMetadataUriTemplate bu kategoriye girer.
Üçüncü olarak, kendisi kasıtlı olarak belgelenmemiş olan V2 protokolüyle sıkı bir şekilde bağlı olan kaynakları belgeleyen yok. Kaynak LegacyGallery bu kategoriye girer. Bu kaynak, bir V3 hizmet dizininin karşılık gelen V2 kaynak URL'sini işaret edin. Bu kaynak, nuget.exe list destekler.
Bir kaynak burada belgelenmişse, kesinlikle bu kaynaklara bağımlılık almamanız önerilir. Bu belgelenmemiş kaynakların davranışını kaldırabilir veya değiştirebiliriz ve bu da beklenmeyen yollarla uygulamanızı bozabilirsiniz.
Zaman damgaları
API tarafından döndürülen tüm zaman damgası UTC'dir veya aksi takdirde ISO 8601 gösterimi kullanılarak belirtilir.
HTTP yöntemleri
| Fiil | Kullanın |
|---|---|
| GET | Genellikle verileri alarak salt okunur bir işlem gerçekleştirir. |
| HEAD | karşılık gelen istek için yanıt üst bilgilerini GET getirir. |
| PUT | Var olmayan bir kaynak oluşturur veya varsa bunu günceller. Bazı kaynaklar güncelleştirmeyi desteklemez. |
| DELETE | Bir kaynağı siler veya listeden siler. |
HTTP durum kodu
| Kod | Açıklama |
|---|---|
| 200 | Başarılı olur ve bir yanıt gövdesi vardır. |
| 201 | Başarılı ve kaynak oluşturuldu. |
| 202 | Başarılı oldu, istek kabul edildi ancak bazı işler hala tamamlanmamış ve zaman uyumsuz olarak tamamlandı olabilir. |
| 204 | Başarılı, ancak yanıt gövdesi yok. |
| 301 | Kalıcı bir yeniden yönlendirme. |
| 302 | Geçici yeniden yönlendirme. |
| 400 | URL 'deki veya istek gövdesindeki parametreler geçerli değil. |
| 401 | Belirtilen kimlik bilgileri geçersiz. |
| 403 | Verilen kimlik bilgileri verilen eyleme izin verilmiyor. |
| 404 | İstenen kaynak yok. |
| 409 | İstek, var olan bir kaynakla çakışıyor. |
| 500 | Hizmet beklenmeyen bir hatayla karşılaştı. |
| 503 | Hizmet geçici olarak kullanılamıyor. |
GETBIR API uç noktasına yapılan herhangi bir istek, http yeniden yönlendirme (301 veya 302) döndürebilir. İstemciler, üstbilgiyi gözlemleyerek Location ve daha sonra yayımlayarak bu yeniden yönlendirmeleri düzgün şekilde işlemelidir GET . Belirli uç noktalarla ilgili belgeler, yeniden yönlendirmelerin nerede kullanılabileceğini açıkça çağırmaz.
500 düzeyinde bir durum kodu söz konusu olduğunda, istemci makul bir yeniden deneme mekanizması uygulayabilir. resmi NuGet istemci, 500 düzeyinde bir durum kodu veya TCP/DNS hatası ile karşılaşıldığında üç kez yeniden dener.
HTTP istek üstbilgileri
| Ad | Açıklama |
|---|---|
| X-NuGet-apikey | Gönderme ve silme için gerekli, bkz. kaynak |
| X-NuGet-Client-Version | Kullanım dışı ve değiştirilmiş |
| X-NuGet-protokol-sürümü | Yalnızca nuget.org üzerinde bazı durumlarda gereklidir, bkz. NuGet.org Protocols |
| X-NuGet-oturum kimliği | Isteğe bağlı. NuGet istemcileri v 4.7 + aynı NuGet istemci oturumunun parçası olan HTTP isteklerini belirler. |
, X-NuGet-Session-Id İçinde tek bir geri yükleme ile ilgili tüm işlemler için tek bir değere sahiptir PackageReference . Otomatik tamamlama ve geri yükleme gibi diğer senaryolar için packages.config kodun birbirine nasıl bağlı olduğu ile ilgili birkaç farklı oturum kimliği olabilir.
Kimlik Doğrulaması
Kimlik doğrulaması, tanımlanacak paket kaynak uygulamasına bırakılır. Nuget.org için yalnızca kaynak, PackagePublish Özel BIR API anahtarı üst bilgisi aracılığıyla kimlik doğrulaması gerektirir. Ayrıntılar için bkz. kaynak .