Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
(Kísérleti)
Ez az Azure SDK JavaScript-kódtárak fő HTTP-folyamata, amely a böngészőben és a Node.js működik. Ez a kódtár elsősorban az AutoRest és autorest.typescripta által létrehozott kódban használható.
Első lépések
Követelmények
- Node.js 8.x-es verzió >
Telepítés
Ezt a csomagot elsősorban a létrehozott kódban használják, és nem közvetlenül a végfelhasználóknak szánták.
Fő fogalmak
PipelineRequest
Az A PipelineRequest a HTTP REST-végpontra irányuló kéréshez szükséges összes információt ismerteti.
PipelineResponse
Az A PipelineResponse egy REST-végpont http-válaszát (törzsét, fejléceit és állapotkódját) írja le, amelyet a HTTP-kérés végrehajtása után ad vissza.
SendRequest
A SendRequest metódus olyan metódus, amely adott aszinkron PipelineRequest módon ad vissza egy metódust PipelineResponse.
export type SendRequest = (request: PipelineRequest) => Promise<PipelineResponse>;
HttpsClient
Az an HttpsClient olyan objektum, amely megfelel a következő felületnek egy SendRequest metódus implementálásához:
export interface HttpsClient {
/**
* The method that makes the request and returns a response.
*/
sendRequest: SendRequest;
}
HttpsClientAz s-ek várhatóan ténylegesen egy kiszolgálóvégpontra küldik a HTTP-kérést, ehhez valamilyen platformspecifikus mechanizmust használnak.
Folyamatszabályzatok
Az A PipelinePolicy egy egyszerű objektum, amely a következő felületet valósítja meg:
export 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>;
}
Alakja hasonló a következőhöz: HttpsClient, de tartalmaz egy szabályzatnevet, valamint egy enyhén módosított SendRequest aláírást, amely lehetővé teszi, hogy feltételesen meghívja a következő szabályzatot a folyamatban.
A szabályzatok middlewareszerepét a következőhöz hasonlóként tekinthetjük meg, amely ismerős a NodeJS-fejlesztők számára, akik olyan keretrendszerekkel dolgoztak, mint az Express.
Az sendRequest implementáció a kimenő kérést és a bejövő választ is átalakíthatja:
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 (response.status === 403) {
// Do something special if this policy sees Forbidden
}
return result;
}
};
A legtöbb szabályzat csak a kéréssel vagy a válaszsal foglalkozik, de van néhány kivétel, például a LogPolicy , amely mindegyikből naplózza az adatokat.
Pipelines
Az A Pipeline egy objektum, amely egy objektumkészletet PipelinePolicy kezel. Fő funkciója annak biztosítása, hogy a szabályzatok végrehajtása konzisztens és kiszámítható sorrendben történjen.
Gondolhat arra, hogy a szabályzatok egy veremként lesznek alkalmazva (első/utolsó előtti).) Az első PipelinePolicy képes módosítani a PipelineRequest korábbi szabályzatokat, és ez az utolsó, amely a PipelineResponsehívóhoz legközelebb áll. A végső szabályzat az utolsó, amely módosíthatja a kimenő kérést, és az első, amely kezeli a választ, így az a legközelebb van a hálózathoz.
A Pipeline megfelel a következő felületnek:
export interface Pipeline {
addPolicy(policy: PipelinePolicy, options?: AddPolicyOptions): void;
removePolicy(options: { name?: string; phase?: PipelinePhase }): PipelinePolicy[];
sendRequest(httpsClient: HttpsClient, request: PipelineRequest): Promise<PipelineResponse>;
getOrderedPolicies(): PipelinePolicy[];
clone(): Pipeline;
}
Mint látható, lehetővé teszi a szabályzatok hozzáadását vagy eltávolítását, és lazán kapcsolódik HttpsClient a kiszolgáló végpontjára irányuló valós kérés végrehajtásához.
Az s egyik Pipelinefontos fogalma, hogy a szabályzatokat rendezett fázisokba csoportosítják:
- Fázis szerializálása
- Nem fázisban lévő szabályzatok
- Deszerializálási fázis
- Újrapróbálkozási fázis
A fázisok a fenti sorrendben történnek, először a szerializálási szabályzatok lesznek alkalmazva, majd az újrapróbálkozási szabályzatok utolsóként lesznek alkalmazva. A legtöbb egyéni szabályzat a második gyűjtőbe kerül, és nem kap fázisnevet.
Amikor szabályzatot ad hozzá a folyamathoz, nemcsak azt adhatja meg, hogy egy szabályzat melyik fázisban van, hanem azt is, hogy van-e függősége:
export interface AddPolicyOptions {
beforePolicies?: string[];
afterPolicies?: string[];
afterPhase?: PipelinePhase;
phase?: PipelinePhase;
}
beforePolicies azok a szabályzatok, amelyeket az új szabályzatnak előbb végre kell hajtania, és afterPolicies azok a szabályzatok, amelyeket az új szabályzatnak utána kell végrehajtania. Hasonlóképpen, azt jelenti, afterPhase hogy a szabályzatnak csak a megadott fázis után kell végrehajtania.
Ez a szintaxis lehetővé teszi az egyéni szabályzatszerzők számára, hogy kifejezzék a saját szabályzataik és a folyamat használatával createPipelineFromOptionslétrehozott beépített szabályzatok @azure/core-https közötti szükséges kapcsolatokat.
A implementátorok név vagy fázis alapján is eltávolíthatják a szabályzatokat abban az esetben, ha módosítani szeretnének egy meglévőt Pipeline anélkül, hogy újat kellene létrehozniuk a használatával createEmptyPipeline. A clone metódus különösen akkor hasznos, ha az eredeti módosítás nélkül hoz létre újra egy Pipeline metódust.
Az összes többi korlátozás teljesülése után a szabályzatok a hozzáadásuk sorrendjében lesznek alkalmazva.
Példák
Példák a mappában samples találhatók.
Következő lépések
A teszteket helyileg hozhatja létre és futtathatja a futtatásával rushx test. A mappában megtekintheti a test nyilvános osztályok speciális használatát és viselkedését.
Hibaelhárítás
Ha problémákba ütközik a kódtár használata során, nyugodtan jelentse be a problémát.
Közreműködés
Ha hozzá szeretne járulni ehhez a kódtárhoz, olvassa el a közreműködői útmutatót , amelyből többet is megtudhat a kód összeállításáról és teszteléséről.
Azure SDK for JavaScript