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 ve Node.jsAzure SDK JavaScript kitaplıkları için temel HTTP işlem hattıdır. Bu kitaplık öncelikli olarak AutoRest ve autorest.typescripttarafından oluşturulan kodda 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 bilgi için bkz. destek ilkesi.
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;
},
};
İlkelerin çoğu yalnızca istek veya yanıtla ilgilidir, ancak her birinden bilgileri günlüğe kaydeden LogPolicy gibi bazı özel durumlar vardır.
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 kitaplığı kullanırken sorunlarla karşılaşırsanız lütfenbir sorun
Katkıda
Bu kitaplığa katkıda bulunmak istiyorsanız kodu oluşturma ve test etme hakkında daha fazla bilgi edinmek için lütfen katkıda bulunma kılavuzu okuyun.
Azure SDK for JavaScript