how publish pact contract pact broker
Denne vejledning forklarer to muligheder for at oprette pagtmægleren. Du kan offentliggøre pagtkontrakten til pagtmægleren ved hjælp af pact-js-rammen og med Postman:
bedste spion app til mobiltelefon
Hvad er pagtmægler?
Paktmægler er et værktøj, der leveres af skaberne af pagtrammen. Det letter lagring af kontrakter, visualisering af forbrugere og bekræftelse af kontraktstatus.
Årsagen til at have en separat mægler til at gemme kontrakterne er, at hvert sæt tests ofte er skrevet på forskellige arkiver og endda forskellige sprog.
=> Udforsk The Simple Contract Testing Training Series her
Hvad du vil lære:
Udgiv pagtkontrakt til pagtmægler
Før vi springer ind i, hvordan vi offentliggør en kontrakt, skal du træffe en beslutning om, hvorvidt du selv vil være vært for pagtmægleren eller bruge en hostet tjeneste som f.eks. Pactflow .
Personligt har vi valgt Pactflow, da dette giver de ekstra fordele som vist i nedenstående tabel:
Funktion | Pactflow | Selvhostet |
---|---|---|
SSO (Github) | Ja | Lade være med |
Server vedligeholdelse | Lade være med | Ja |
Sikker poletter / hemmeligheder | Ja | Lade være med |
Webhooks | UI konfigurerbar | Manuel konfiguration |
Infrastruktur som kode | Terraform | Dockerfil |
Opsætning af pagtmægler med paktflow
Pactflow giver en gratis mulighed, der kun opkræves efter 180 måneders prøveperiode (fra maj 2020), det er 10 og et halvt år.
- Registrer din e-mail-adresse med Pactflow (bemærk, at du altid kan tilføje flere brugere senere).
- Opret virksomhedsoplysninger og underdomæne til din pagtmægler.
- Du skal nu modtage en e-mail med dit midlertidige brugernavn og din adgangskode.
- Naviger til dit underdomæne (her er mit underdomæne ) og log ind. Hvis dette lykkedes, skal du se eksemplet på appen med en allerede oprettet kontrakt.
Vi ser på, hvordan vi verificerer mod kontrakter i Pactflow senere i vejledningen.
Opsætning af pagtmægler med Docker (docker-compose)
Pact tilbyder dockerbilleder, der nemt kan dreje din egen pagtmægler op på få sekunder med docker-compose. Det github-arkiv forklarer hvordan dette kan gøres, lad os gå i detaljer om dette senere.
Nogle yderligere trin, der tilføjes for at sikre, at tjenesten er stabil, er angivet nedenfor:
- Føj 'genstart: altid' til docker-komponere tjenester.
- Start docker-compose på serveren ved hjælp af det '-d` løsnede argument for at lade det køre i baggrunden.
Udgivelseskontrakt med pact-js
Hver implementering af Pact-sprog har sine egne metoder til, hvordan kontrakterne offentliggøres til mægleren. Udgivelse til Pact Broker i JavaScript, konfigurationen skal ligne denne.
Paktmæglertegnet vist ovenfor er gemt i Pactflow under indstillinger. Screenshots vises nedenfor. Sørg for, at du bruger CI-tokenet, der har læse- og skrivetilladelser.
Gå til Indstillinger og derefter API-tokens i Pactflow.
Sandsynligvis bør hemmeligheder og adgangskoder ikke gemmes i git, derfor skal en `.env`-fil bruges og henvises til i koden med noget som vist nedenfor.
Sammen med “PublishVerificationResult” værdi, vil du ikke bekræfte kontrakter i dit lokale miljø. Derfor skal der indstilles en anden miljøvariabel, som vist nedenfor.
Nu kan kontrakten offentliggøres direkte i koden.
Udgivelseskontrakt med postbud
For at kontrollere den første kontrakt bruger vi normalt Postman til at sikre, at mægleren er konfigureret korrekt. Postbud er også blevet brugt, når forbrugerne var langsomme med at vedtage pagten inden for deres team, så vi offentliggjorde kontrakten til pagtmægleren og bad forbrugerholdet om at kontrollere, om de er tilfredse med kontrakten.
Dette gjorde det muligt for os som udbyderteam at kontrollere mod kontrakten og have større tillid til vores implementeringer. Også når forbrugerholdet var klar til at vedtage pagten, havde de allerede et fungerende eksempel at bruge.
Trinene til udgivelse af postbud er vist nedenfor:
# 1) PUT: Konstruer anmodningen
- Naviger til underdomæne
- Udbyderens navn
- Forbrugernavn
- Version
# 2) Autorisation: Tilføj bærer-token (som svarer til API-token som nævnt ovenfor)
# 3) Inkluder pagten JSON som kroppen (JSON kan kopieres direkte i bodyfeltet og derved sørge for at indstille Content: Type-overskriften til 'application / json').
Deling af pakter med API-udbydere
Når dine kontrakter er blevet offentliggjort, kan udbyderen hente pagtkontrakten ved at anmode om paktmæglerens URL med:
Normalt vil du gerne bekræfte med en bestemt version af API'en. For eksempel, i en mikroservicearkitektur foretager forbrugerholdet konstant ændringer i de oplysninger, de har brug for fra API'et.
Ved siden af dette foretager API-udbydere ændringer på samme tid, og de bliver nødt til at kontrollere mod den version, der i øjeblikket er implementeret til produktion, da dette vil sikre en problemfri implementering.
Konklusion
Endelig har du en pagtmægler med en offentliggjort kontrakt, i den næste vejledning vil vi se på, hvordan du skriver din udbydertest ved at indpakke en .Net Core API, trække den seneste kontrakt og kontrollere mod den lokale API.
Pact-rammen er ikke kun værdifuld i starten af dit projekt på en forbrugerdreven måde, men fordelen ved at visualisere dine forbrugere med Pact Broker er bestemt en vigtig bidragsyder til at bruge dette værktøj.
Evnen til bedre at forstå forbrugerinteraktioner, og hvordan API'et faktisk bruges, kan ofte gå tabt i oversættelsen og kan resultere i et produktionsproblem, der kan ske. Dette fører til timevis af fejlretning og trawl gennem applikationslogfilerne.
I denne vejledning har vi lært to forskellige muligheder for at oprette din pagtmægler. Du har offentliggjort din kontrakt ved hjælp af pact-js-rammen og også med Postman.
På dette tidspunkt skal du overveje at tilpasse dine versioner på tværs af mikrotjenesterne og også navngive dine udbydere konsekvent for at skabe et letlæseligt og forståeligt Pact Broker-netværk.
=> Besøg her for at lære kontraktprøvning fra bunden
Anbefalet læsning
- Sådan skriver du en forbrugerpagtest i JavaScript
- Introduktion til kontraktprøvning med eksempler
- Kontroller pagtkontrakt og kontinuerlig implementering med pagt CLI
- Docker Tutorial: Installation og introduktion til Docker
- Avanceret scripting til kompleks test af arbejdsgange i postbud
- Sådan oprettes API-dokumentation i postbud?
- Hvordan bruges postbud til test af forskellige API-formater?
- Top 10 mest populære spørgsmål om postbudinterview med svar