Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu, tarayıcıda çalışan Azure SDK JavaScript kütüphaneleri için temel HTTP boru hattıdır ve Node.js. Bu kütüphane, öncelikle TypeSpec@azure-tools/typespec-ts yayıcısı tarafından oluşturulan kodlarda kullanılmak üzere tasarlanmıştır.
Başlarken
Gereksinim -leri
Şu anda desteklenen ortamlar
- Node.js LTS sürümleri
- Safari, Chrome, Edge ve Firefox'un en son sürümleri.
Daha fazla detay için destek politikamız adresimize bakınız.
Kurma
Bu paket öncelikli olarak oluşturulan kodda kullanılır ve doğrudan son kullanıcılar tarafından kullanılması amaçlanmamıştır.
Temel kavramlar
PipelineRequest (PipelineRequest)
PipelineRequest, HTTP REST uç noktasına istekte bulunmak için gereken tüm bilgileri açıklar.
PipelineResponse (Ardışık Düzen Yanıtı
PipelineResponse, HTTP isteği yapıldıktan sonra döndürülen REST uç noktasından HTTP yanıtını (gövde, üst bilgiler ve durum kodu) açıklar.
İstek Gönder
SendRequest yöntemi, PipelineRequest zaman uyumsuz olarak PipelineResponsedöndürebilen bir yöntemdir.
import { PipelineRequest, PipelineResponse } from "@azure/core-rest-pipeline";
type SendRequest = (request: PipelineRequest) => Promise<PipelineResponse>;
HttpClient (Httpİstemci)
HttpClient, bir SendRequest yöntemi uygulamak için aşağıdaki arabirimi karşılayan herhangi bir nesnedir:
import { SendRequest } from "@azure/core-rest-pipeline";
interface HttpClient {
/**
* The method that makes the request and returns a response.
*/
sendRequest: SendRequest;
}
HttpClient'ların, bunu yapmak için platforma özgü bir mekanizma kullanarak bir sunucu uç noktasına HTTP isteğinde bulunması beklenir.
İşlem Hattı İlkeleri
PipelinePolicy, aşağıdaki arabirimi uygulayan basit bir nesnedir:
import { PipelineRequest, SendRequest, PipelineResponse } from "@azure/core-rest-pipeline";
interface PipelinePolicy {
/**
* The policy name. Must be a unique string in the pipeline.
*/
name: string;
/**
* The main method to implement that manipulates a request/response.
* @param request - The request being performed.
* @param next - The next policy in the pipeline. Must be called to continue the pipeline.
*/
sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse>;
}
şekilde HttpClientbenzer, ancak işlem hattında bir sonraki ilkeyi koşullu olarak çağırmasına olanak tanıyan bir ilke adı ve biraz değiştirilmiş bir SendRequest imzası içerir.
İlkelerin rolünü middlewareolarak görüntüleyebilir, Expressgibi çerçevelerle çalışan NodeJS geliştiricilerine tanıdık gelen bir kavramdır.
sendRequest uygulaması hem giden isteği hem de gelen yanıtı dönüştürebilir:
import { PipelineRequest, SendRequest, PipelineResponse } from "@azure/core-rest-pipeline";
const customPolicy = {
name: "My wonderful policy",
async sendRequest(request: PipelineRequest, next: SendRequest): Promise<PipelineResponse> {
// Change the outgoing request by adding a new header
request.headers.set("X-Cool-Header", 42);
const result = await next(request);
if (result.status === 403) {
// Do something special if this policy sees Forbidden
}
return result;
},
};
Çoğu politika sadece istek veya yanıtla ilgilenir, ancak
Boru hattı
Pipeline, bir dizi PipelinePolicy nesnesini yöneten bir nesnedir. Ana işlevi, ilkelerin tutarlı ve öngörülebilir bir sırada yürütülmesini sağlamaktır.
İlkelerin bir yığın gibi uygulandığını düşünebilirsiniz (ilk gelen/son çıkan.) İlk PipelinePolicy, PipelineRequest diğer ilkelerden önce değiştirebilir ve aynı zamanda PipelineResponsedeğiştiren son öğedir ve bu da çağıranın en yakını olur. Son ilke, giden isteği değiştirebilecek son ilkedir ve yanıtı işleyen ilk ilkedir ve bunu ağa en yakın hale getirir.
Bir Pipeline aşağıdaki arabirimi karşılar:
import {
PipelinePolicy,
AddPipelineOptions,
PipelinePhase,
HttpClient,
PipelineRequest,
PipelineResponse,
} from "@azure/core-rest-pipeline";
interface Pipeline {
addPolicy(policy: PipelinePolicy, options?: AddPipelineOptions): void;
removePolicy(options: { name?: string; phase?: PipelinePhase }): PipelinePolicy[];
sendRequest(httpClient: HttpClient, request: PipelineRequest): Promise<PipelineResponse>;
getOrderedPolicies(): PipelinePolicy[];
clone(): Pipeline;
}
Gördüğünüz gibi ilkelerin eklenmesine veya kaldırılmasına olanak tanır ve sunucu uç noktasına gerçek isteği gerçekleştirmek için HttpClient gevşek bir şekilde birleştirilmiştir.
Pipelineiçin önemli kavramlardan biri, ilkeleri sıralı aşamalar halinde gruplandırmalarıdır:
- Aşamayı Seri Hale Getirme
- Bir aşamada olmayan ilkeler
- Seri Durumdan Çıkarma Aşaması
- Yeniden Deneme Aşaması
Aşamalar yukarıdaki sırada gerçekleşir ve serileştirme ilkeleri önce uygulanır ve en son yeniden deneme ilkeleri uygulanır. Çoğu özel ilke ikinci demete girer ve aşama adı verilmez.
İşlem hattına bir ilke eklerken, bir ilkenin yalnızca hangi aşamada olduğunu değil, aynı zamanda herhangi bir bağımlılığı varsa da belirtebilirsiniz:
import { PipelinePhase } from "@azure/core-rest-pipeline";
interface AddPipelineOptions {
beforePolicies?: string[];
afterPolicies?: string[];
afterPhase?: PipelinePhase;
phase?: PipelinePhase;
}
beforePolicies, yeni ilkenin daha önce yürütmesi gereken ilkelerdir ve afterPolicies yeni ilkenin sonrasında gerçekleşmesi gereken ilkelerdir. Benzer şekilde, afterPhase ilkenin yalnızca belirtilen aşama oluştuktan sonra yürütülmesi gerektiği anlamına gelir.
Bu söz dizimi, özel ilke yazarlarının kendi ilkeleriyle @azure/core-rest-pipelinekullanarak işlem hattı oluştururken createPipelineFromOptions tarafından sağlanan yerleşik ilkeler arasındaki gerekli ilişkileri ifade etmesine olanak tanır.
Uygulayıcılar, Pipelinekullanarak yeni bir tane oluşturmak zorunda kalmadan mevcut bir createEmptyPipeline değiştirmek istemeleri durumunda ilkeleri ada veya aşamaya göre de kaldırabilir.
clone yöntemi, özgün Pipeline değiştirmeden yeniden oluştururken özellikle yararlıdır.
Diğer tüm kısıtlamalar karşılandıktan sonra ilkeler eklendikleri sırayla uygulanır.
Örnekler
Örnekler samples klasöründe bulunabilir.
Sonraki adımlar
npm run testyürüterek testleri yerel olarak derleyebilir ve çalıştırabilirsiniz. Genel sınıfların gelişmiş kullanımını ve davranışını görmek için test klasörünü keşfedin.
Sorun giderme
Bu kütüphaneyi kullanırken sorun yaşarsanız, lütfen issue dosyasında yazmaktan çekinmeyin.
Katkıda
Bu kütüphaneye katkıda bulunmak isterseniz, kodun nasıl oluşturulacağı ve test edileceği hakkında daha fazla bilgi edinmek için lütfen katkı rehberi adresini okuyun.
Azure SDK for JavaScript