Tabii, size KatanaClient
sınıfı için örnek bir README.md dosyası hazırlayabilirim. İşte detaylı bir README.md örneği:
KatanaClient
KatanaClient, HTTP ve HTTPS istekleri yapmak için kullanılan Node.js tabanlı bir istemci kütüphanesidir. Bu kütüphane, çeşitli HTTP metodlarını destekler ve gelişmiş seçenekler sunar.
Kurulum
KatanaClient'ı projenize dahil etmek için aşağıdaki adımları izleyin:
-
Projenizin bulunduğu dizinde terminal veya komut istemcisini açın.
-
Aşağıdaki komutu çalıştırarak KatanaClient'ı npm ile yükleyin:
npm install katana-client
-
KatanaClient'ı projenizde kullanmak için require
fonksiyonuyla içe aktarın:
const KatanaClient = require('katana-client');
Kullanım
KatanaClient, çeşitli HTTP istek metodlarını destekler ve ayrıca isteğe bağlı olarak özelleştirilebilir ayarlar sağlar.
Başlangıç
const KatanaClient = require('katana-client');
const client = new KatanaClient({
timeout: 10000,
maxRedirects: 5,
followRedirects: true,
});
HTTP Metotları
KatanaClient, yaygın olarak kullanılan HTTP metodlarını destekler: GET, POST, PUT, DELETE, HEAD, OPTIONS, PATCH, TRACE, CONNECT.
Örnekler:
client.get('https://jsonplaceholder.typicode.com/posts/1')
.then(response => console.log('GET Response:', response))
.catch(error => console.error('GET Error:', error));
const postData = { title: 'foo', body: 'bar', userId: 1 };
client.post('https://jsonplaceholder.typicode.com/posts', postData)
.then(response => console.log('POST Response:', response))
.catch(error => console.error('POST Error:', error));
Dosya İşlemleri
Dosya indirme ve yükleme işlemleri için downloadFile
ve uploadFile
metodları kullanılabilir:
client.downloadFile('https://example.com/file.pdf', './downloads/file.pdf')
.then(filePath => console.log('File downloaded to:', filePath))
.catch(error => console.error('Download Error:', error));
client.uploadFile('https://example.com/upload', './uploads/file.txt')
.then(response => console.log('File uploaded:', response))
.catch(error => console.error('Upload Error:', error));
Yeniden Deneme ve Akışlı İstekler
Başarısız isteklerin otomatik olarak yeniden denenmesi ve akışlı istekler için retryRequest
ve streamRequest
metodları mevcuttur:
client.retryRequest('GET', 'https://example.com/api/data', null, {})
.then(response => console.log('Retry Response:', response))
.catch(error => console.error('Retry Error:', error));
client.streamRequest('https://example.com/stream/data')
.then(stream => {
stream.on('data', data => console.log('Stream data:', data));
stream.on('error', error => console.error('Stream Error:', error));
})
.catch(error => console.error('Stream Request Error:', error));
İptal ve Hata Kontrolü
İstek iptali ve hata kontrolü için cancelRequest
ve isRequestCancelled
metodları kullanılabilir:
const req = client.get('https://example.com');
client.cancelRequest(req);
if (client.isRequestCancelled(req)) {
console.log('Request was cancelled.');
}
Seçenekler
KatanaClient sınıfının başlatıcı fonksiyonuna aşağıdaki seçenekler sağlanabilir:
timeout
: İstek zaman aşımı (varsayılan: 5000 ms)maxRedirects
: Maksimum yönlendirme sayısı (varsayılan: 5)followRedirects
: Yönlendirmeleri takip etme (varsayılan: true)agent
: HTTP(s) bağlantı havuzu ve keep-alive için ajanproxy
: Proxy ayarlarıcert
, key
, ca
: SSL/TLS sertifikası, özel anahtar ve sertifika yetkilisirejectUnauthorized
: Yetkisiz SSL/TLS sertifikalarını reddetme (varsayılan: true)maxSockets
: Maksimum soket sayısı (varsayılan: 100)maxFreeSockets
: Maksimum boş soket sayısı (varsayılan: 10)scheduling
: Zamanlama stratejisi (fifo, lifo, random; varsayılan: fifo)
Lisans
MIT Lisansı altında lisanslanmıştır. Daha fazla bilgi için LICENSE
dosyasına bakın.