Dev Proxy kullanmaya başlama

Dev Proxy, dayanıklı uygulamalar oluşturmanıza yardımcı olmak için bulut API'lerinin davranışlarını ve hatalarını simüle etmeye yardımcı olan bir komut satırı aracıdır.

Bu öğreticide Dev Proxy'yi yüklemeyi, çalıştırmayı ve yapılandırmayı öğreneceksiniz.

Herhangi bir sorunla karşılaşırsanız , yeni bir sorun oluşturarak bizimle iletişime geçmekten çekinmeyin ve size yardımcı olmaktan mutluluk duyarız.

Dev Proxy'yi yükleme

Dev Proxy'yi yüklemenin en kolay yolu winget kullanmaktır. Alternatif olarak, Dev Proxy'yi el ile yükleyebilirsiniz.

Winget kullanarak Dev Proxy yüklemek için aşağıdaki komutu çalıştırın:

winget install Microsoft.DevProxy --silent

Önemli

Geliştirme Proxy yükleyicisi PATH'e yeni bir giriş ekler. Yüklemeden sonra Geliştirme Proxy'sini kullanmak için, PATH ortam değişkenlerinin yenilendiğinden emin olmak için komut istemini yeniden başlatmanız gerekir.

Not

En son önizleme özelliklerini denemek için Dev Proxy'nin beta sürümünü yükleyin.

Winget kullanarak Dev Proxy yüklemek için aşağıdaki komutu çalıştırın:

winget install Microsoft.DevProxy.Beta --silent

Dev Proxy'nin beta sürümünü çalıştırmak için kullanın devproxy-beta

Dev Proxy'yi yüklemenin en kolay yolu Homebrew kullanmaktır. Alternatif olarak, Dev Proxy'yi el ile yükleyebilirsiniz.

Homebrew kullanarak Dev Proxy yüklemek için aşağıdaki komutları çalıştırın:

brew tap microsoft/dev-proxy
brew install dev-proxy

Not

En son önizleme özelliklerini denemek için Dev Proxy'nin beta sürümünü yükleyin.

Homebrew kullanarak Dev Proxy yüklemek için aşağıdaki komutları çalıştırın:

brew tap microsoft/dev-proxy
brew install dev-proxy-beta

Dev Proxy'nin beta sürümünü çalıştırmak için kullanın devproxy-beta

Geliştirme Proxy'sini ilk kez başlatma

Makinenizde Geliştirme Proxy'sini ilk kez başlattığınızda, Geliştirme Proxy'sinin makinenizden gelen istekleri kesebilmesini ve başarıyla yanıt vermesini sağlamak için izleyebileceğiniz birkaç adım vardır. İlk çalıştırmadan sonra bu adımları yinelemeniz gerekmez.

  1. Geliştirme Proxy'si'ni başlatın. Bir komut istemi oturumu açın. Enter tuşuna devproxybasın.
  2. Sertifikaya güven. Dev Proxy adlı Dev Proxy CAbir sertifika yükler. Bir uyarı gösterilir. Sertifikayı yüklemek istediğinizi onaylamak için seçin Yes . Dev Proxy, makinenizden gönderilen HTTPS trafiğinin şifresini çözmek için bu sertifikayı kullanır.
  3. Güvenlik duvarı erişimine izin ver. Windows Güvenlik Duvarı ara sunucuyu engeller. Bir uyarı gösterilir. Güvenlik duvarı üzerinden trafiğe izin vermek için düğmeyi seçin Allow access .
  1. Geliştirme Proxy'si'ni başlatın. Bir komut istemi oturumu açın. Enter tuşuna devproxybasın.
  2. Sertifikaya güven. Dev Proxy, makinenizden gönderilen HTTPS trafiğinin şifresini çözmek için kullandığı adlı Dev Proxy CAbir sertifika yükler. Bir uyarı gösterilir. Sertifikaya güvenmek istediğinizi onaylamak için y tuşuna basın.
  3. Gelen bağlantıları kabul edin. Bir uyarı gösterilir. Onaylamak için seçin Allow .

Komut istemi aşağıdaki çıkışı görüntüler:

8 error responses loaded from devproxy-errors.json
Listening on 127.0.0.1:8000...
Hotkeys: issue (w)eb request, (r)ecord, (s)top recording, (c)lear screen
Press CTRL+C to stop Dev Proxy

Varsayılan olarak, Geliştirme Proxy'si şu şekilde yapılandırılır:

  • Herhangi bir JSON Yer Tutucu API uç noktasına yapılan kesme istekleri
  • %50 hata oranıyla API hata yanıtlarının ve API azaltmasının benzetimini yapma

Kesme istekleri

Dev Proxy, makinenizdeki herhangi bir uygulamadan bilinen URL'lere yapılan istekleri durdurur. Bir istek algılandığında, Geliştirme Ara Sunucusu isteği API'ye geçirir (hiçbir işlem gerçekleştirmez) veya bir yanıt döndürür.

  • Komut satırından JSON Yer Tutucu API'sine bir istek gönderin ve çıkışı görüntülemek için ara sunucu işlemine geri dönün.

PowerShell'de, JSON Yer Tutucu API'sine get isteği göndermek için cmdlet'ini kullanın Invoke-WebRequest .

Invoke-WebRequest -Uri https://jsonplaceholder.typicode.com/posts

kullanıyorsanız curl, aşağıdaki komutu kullanarak JSON Yer Tutucu API'sine bir GET isteği gönderin.

curl -ix http://localhost:8000 https://jsonplaceholder.typicode.com/posts

'a GET isteği https://jsonplaceholder.typicode.com/postsgöndermek için Postman gibi bir API istemcisi de kullanabilirsiniz.

Gelen istek ve Geliştirme Proxy'sinin gerçekleştirdiği eylem hakkında bazı temel bilgiler içeren bir giriş gösterilir. Geliştirme Proxy'si %50 şans ile hata yanıtı simülasyonu oluşturur. İsteğiniz hata döndürmezse Dev Proxy bunu geçirir.

 request     GET https://jsonplaceholder.typicode.com/posts
     api   ╭ Passed through
           ╰ GET https://jsonplaceholder.typicode.com/posts
  • Bir hata yanıtı döndürülene kadar komut satırından JSON Yer Tutucu API'sine istek gönderme işlemini yineleyin.
 request     GET https://jsonplaceholder.typicode.com/posts
     api   ╭ Passed through
           ╰ GET https://jsonplaceholder.typicode.com/posts
 request     GET https://jsonplaceholder.typicode.com/posts
   chaos   ╭ 403 Forbidden
           ╰ GET https://jsonplaceholder.typicode.com/posts

Geliştirme Proxy'si hata yanıtı döndürdüğünde, girişte bir chaos etiket görüntülenir.

  • JSON Yer Tutucu API'sinde bulunan diğer uç noktalara istek göndermeyi deneyin
    • https://jsonplaceholder.typicode.com/posts
    • https://jsonplaceholder.typicode.com/posts/1
    • https://jsonplaceholder.typicode.com/posts/1/comments
    • https://jsonplaceholder.typicode.com/comments?postId=1

Geliştirme Proxy'lerini güvenli bir şekilde durdurma

Artık Dev Proxy'nin çalışmasını gerektirmediğinizde, her zaman güvenli bir şekilde durdurmanız gerekir.

  • Dev Proxy'yi güvenli bir şekilde durdurmak için Ctrl + C tuşuna basın.

Komut istemi oturumunu kapatırsanız, Geliştirme Proxy'si sistem proxy'si olarak kaydı doğru şekilde kaldırmaz ve bazı yaygın sorunlarla karşılaşabilirsiniz.

URL'leri watch olarak güncelleştirme

Varsayılan olarak, Geliştirme Proxy'si JSON Yer Tutucu API'sine yapılan tüm istekleri kesecek şekilde yapılandırılır. Dev Proxy'yi herhangi bir HTTP API'sine yönelik istekleri kesecek şekilde yapılandırabilirsiniz.

  • Bir komut isteminde komutunu çalıştırarak brew list dev-proxy yükleme klasörünü bulun.
  • Geliştirici Ara Sunucusu yükleme klasörünü Bulucu'da açın.
  • Dev Proxy yükleme klasöründe bir metin düzenleyicisinde açın devproxyrc.json .
  • Diziyi urlsToWatch bulun.
"urlsToWatch": [
  "https://jsonplaceholder.typicode.com/*"
],

Dizi bilinen urlsToWatch URL'leri temsil eder. Geliştirme Proxy'si geçerli girdiden herhangi bir uç noktaya gelen istekleri izler. Girdi, URL'nin ardından joker karakter olarak bir yıldız işareti kullanır. Bu diziye daha fazla giriş eklemek, Geliştirme Proxy'sinin izlediği URL'leri genişletir.

Dev Proxy'nin belirli bir uç noktaya yapılan istekleri kesmesini istemediğinizi düşünelim.

  • Diziye urlsToWatch yeni bir giriş ekleyin.
"urlsToWatch": [
  "!https://jsonplaceholder.typicode.com/posts/2",
  "https://jsonplaceholder.typicode.com/*"
],

URL'nin başındaki ünlem işareti, Geliştirme Proxy'sine bu URL ile eşleşen istekleri yoksaymalarını söyler. Url'deki ünlem işaretlerini ve yıldız işaretlerini karıştırabilir ve eşleştirebilirsiniz.

  • Komut satırına girin devproxy ve Enter tuşuna basarak Dev Proxy'yi başlatın.
  • Komut satırından adresine https://jsonplaceholder.typicode.com/posts/2 bir istek gönderin ve çıkışı görüntüleyin.

İsteğin yoksayıldığını ve API'ye geçirildiğini onaylayan bir giriş gösterilir.

request     GET https://jsonplaceholder.typicode.com/posts/2
     api   ╭ Passed through
           ╰ GET https://jsonplaceholder.typicode.com/posts/2

URL'lerin dizide urlsToWatch listelenme sırası önemlidir. Dev Proxy bu URL'leri sırayla işler. Bir URL eşleştiğinde, yeniden işlenmez. Bu nedenle, URL'nin önce yerleştirilmesi, bir sonraki URL işlenmeden önce isteğin yoksayılmasını sağlar.

Değişiklik hatası oranı

Varsayılan olarak, Geliştirme Proxy'si izlenen URL'lere %50 şansla isteklerin başarısız olması için yapılandırılır. Bir isteğin hata yanıtı döndürme olasılığını artırabilir veya azaltabilirsiniz.

JSON Yer Tutucu API'sine yapılan her isteğin bir hata yanıtı döndürmesi için hata oranını güncelleştirelim.

  • Dev Proxy yükleme klasöründe bir metin düzenleyicisinde açın devproxyrc.json .
  • rate özelliğini bulun ve değerini 50100olarak güncelleştirin.

Dosya, Geliştirme Proxy'sini devproxyrc.json başlattığınızda kullanılan yapılandırma ayarlarını içerir. Yapılandırma ayarlarını değiştirirken, değişikliklerin kalıcı olması için her zaman Geliştirme Proxy'sini durdurmanız ve başlatmanız gerekir.

  • Komut satırına girin devproxy ve Enter tuşuna basarak Dev Proxy'yi başlatın.
  • Komut satırından JSON Yer Tutucu API'sine bir istek gönderin ve çıkışı görüntüleyin.

Alternatif olarak, Geliştirme Proxy'sini --failure-rate başlatırken seçeneğini kullanarak yapılandırma ayarlarını çalışma zamanında geçersiz kılabilirsiniz.

devproxy --failure-rate 100
  • Dev Proxy'yi güvenli bir şekilde durdurmak için Ctrl + C tuşuna basın.

Azaltma benzetimi

Varsayılan olarak, Geliştirme Proxy'si genel 400 ve 500 hata yanıtlarından oluşan bir aralık döndürür. Bu hata yanıtlarını kendi gereksinimlerinize göre özelleştirebilirsiniz.

Geliştirme Proxy'si, farklı API davranışlarını etkinleştirmek için eklentileri kullanır ve varsayılan olarak sizin için iki eklentiyi etkinleştiririz.

  • GenericRandomErrorPlugin eklentisi, Dev Proxy'nin bir hata yanıtıyla yanıt verebilmesini sağlar.
  • RetryAfterPlugin eklentisi, Dev Proxy'nin hata yanıtında Retry-After üst bilgisine dinamik bir değer eklemesini sağlar.

Geliştirme Proxy'sinin azaltma benzetimi için her zaman bir 429 Too Many requests hata yanıtı döndürmesi için yapılandırmayı değiştirelim.

İlk olarak hata tanımlarını içeren dosyanın konumunu bulayalım.

  • Dev Proxy yükleme klasöründe bir metin düzenleyicisinde açın devproxyrc.json .
  • dizisinde pluginsGenericRandomErrorPlugin eklentisinin girişini bulun. özelliğinin configSection değerini not edin.
  • Dosyanın daha aşağı kısmında nesnesini bulun genericRandomErrorPlugin . özelliğinin errorsFile değerini not edin.

İpucu

Geliştirme Proxy'sini başlattığınızda çıkışta hata dosyasının konumu da görüntülenir.

  • Dev Proxy yükleme klasöründe bir metin düzenleyicisinde açın devproxy-errors.json .
  • Yanıt dışında 429 dizideki responses tüm yanıt girdilerini kaldırın.
{
  "$schema": "https://raw.githubusercontent.com/microsoft/dev-proxy/main/schemas/v0.14.1/genericrandomerrorplugin.schema.json",
  "responses": [
    {
      "statusCode": 429,
      "body": {
        "message": "Too Many Requests",
        "details": "The user has sent too many requests in a given amount of time (\"rate limiting\")."
      },
      "headers": {
        "Retry-After": "@dynamic"
      }
    }
  ]
}
  • Komut satırına girin devproxy ve Enter tuşuna basarak Dev Proxy'yi başlatın.
  • Komut satırından JSON Yer Tutucu API'sine bir istek gönderin ve çıkışı görüntüleyin.
 request     GET https://jsonplaceholder.typicode.com/posts
   chaos   ╭ 429 TooManyRequests
           ╰ GET https://jsonplaceholder.typicode.com/posts
  • Dev Proxy'yi güvenli bir şekilde durdurmak için Ctrl + C tuşuna basın.

Sonraki adım

Geliştirme Proxy'sini kullanarak kendi uygulamanız için rastgele hataların benzetimini yapmayı öğrenin.