how publish pact contract pact broker
Denne opplæringen forklarer to alternativer for å sette opp Paktmegleren. Du kan publisere paktkontrakten til paktmegleren ved hjelp av pact-js-rammeverket og med Postman:
char nummer til int c ++
Hva er paktmegler?
Paktmegler er et verktøy levert av skaperne av paktrammeverket. Det letter lagring av kontrakter, visualisering av forbrukere og bekreftelseskontraktsstatus.
Årsaken til å ha en egen megler til å lagre kontraktene er fordi hvert sett med tester ofte er skrevet på forskjellige arkiver og til og med forskjellige språk.
=> Utforsk The Simple Contract Testing Training Series her
Hva du vil lære:
Publiser paktkontrakt til paktmegler
Før vi hopper inn i hvordan vi kan publisere en kontrakt, må du ta en beslutning om du vil være vert for Paktmegleren selv eller bruke en vertstjeneste som f.eks. Paktstrøm .
Personlig har vi valgt Pactflow ettersom dette gir de ekstra fordelene som vist i tabellen nedenfor:
Trekk | Paktstrøm | Selvbetjent |
---|---|---|
SSO (Github) | Ja | Nei |
Server vedlikehold | Nei | Ja |
Sikre symboler / hemmeligheter | Ja | Nei |
Webhooks | UI konfigurerbar | Manuell konfigurering |
Infrastruktur som kode | Terraform | Dockerfil |
Sette opp Paktmegler Med Pactflow
Paktstrøm gir deg et gratis alternativ som bare belaster deg etter 180 måneders prøveperiode (per mai 2020), det er 10 og et halvt år.
- Registrer e-postadressen din med Pactflow (merk at du alltid kan legge til flere brukere senere).
- Sett opp bedriftsinformasjonen og underdomenet for paktsmegleren din.
- Du skal nå motta en e-post med ditt midlertidige brukernavn og passord.
- Naviger til underdomenet ditt, (her er mitt underdomenet ) og logg inn. Hvis dette var vellykket, bør du se eksempelappen med en allerede konfigurert kontrakt.
Vi vil se på hvordan vi kan verifisere mot kontrakter i Pactflow senere i veiledningen.
Sette opp paktmegler med Docker (docker-compose)
Pact tilbyr dockerbilder for enkelt å spinne opp din egen Pact Broker på få sekunder med docker-compose. De github repository forklarer hvordan dette kan gjøres, la oss gå nærmere inn på dette senere.
Noen ekstra trinn som er lagt til for å sikre at tjenesten er stabil er gitt nedenfor:
- Legg til 'start på nytt: alltid' i docker-compose tjenester.
- Start docker-compose på serveren ved hjelp av det '-d' løsrevne argumentet for å la det kjøre i bakgrunnen.
Forlagskontrakt med pakt-js
Hver Pact-språkimplementering har sine egne metoder for å publisere kontraktene til megleren. Publisering til Pact Broker i JavaScript, konfigurasjonen skal se ut som denne.
Paktmeglertegnet vist ovenfor er lagret i Pactflow under innstillinger. Skjermbilder er vist nedenfor. Forsikre deg om at du bruker CI-tokenet som har lese- og skrivetillatelser.
Gå til Innstillinger og deretter API-tokens i Pactflow.
Sannsynligvis skal ikke hemmeligheter og passord lagres i git, derfor bør en `.env`-fil brukes og refereres til i koden med noe som vist nedenfor.
Sammen med “PublishVerificationResult” verdi, vil du ikke verifisere kontrakter i ditt lokale miljø. Derfor bør det settes en annen miljøvariabel, som vist nedenfor.
Nå kan kontrakten publiseres direkte i koden.
Forlagskontrakt med postbud
Vanligvis, for å verifisere den første kontrakten, bruker vi Postmann for å sikre at megleren er satt opp riktig. Postbud har også blitt brukt når forbrukerne var sakte med å vedta Pakt i teamet sitt, så vi publiserte kontrakten til Paktmegleren og ba forbrukerteamet om å verifisere om de er fornøyd med kontrakten.
Dette gjorde at vi som leverandørteam kunne bekrefte kontrakten og ha mer tillit til distribusjonene våre. Også når forbrukerteamet var klar til å vedta Pakt, hadde de allerede et fungerende eksempel å bruke.
Trinnene for publisering av Postman er gitt nedenfor:
# 1) PUT: Konstruer forespørselen
- Naviger til underdomenet
- Leverandørens navn
- Forbrukernavn
- Versjon
# 2) Autorisasjon: Legg til bærer-token (som tilsvarer API-token som nevnt ovenfor)
# 3) Inkluder pakten JSON som kroppen (JSON kan kopieres direkte inn i kroppsfeltet, og sørg for å sette Innhold: Type-overskriften til “application / json”).
Deling av pakter med API-leverandører
Når kontraktene dine er publisert, kan leverandøren hente Pact-kontrakten ved å be Pact Broker URL med:
Vanligvis vil du verifisere med en spesifikk versjon av API. For eksempel, i en mikrotjenestearkitektur gjør forbrukerteamet stadig endringer i informasjonen de trenger fra API.
Ved siden av dette gjør API-leverandøren endringer samtidig, og de må verifisere mot versjonen som for øyeblikket er distribuert til produksjon, da dette vil sikre en sømløs distribusjon.
Konklusjon
Til slutt har du en paktmegler med en publisert kontrakt. I neste opplæring vil vi se på hvordan du kan skrive leverandørtesten din ved å pakke inn en .Net Core API, trekke den siste kontrakten og verifisere mot den lokale API-en.
Pakt-rammeverket er ikke bare verdifullt i begynnelsen av prosjektet ditt, på en forbrukerdrevet måte, men fordelen med å visualisere forbrukerne dine med Paktmegleren er definitivt en viktig bidragsyter til å bruke dette verktøyet.
Evnen til å bedre forstå forbrukerinteraksjoner og hvordan API-en faktisk brukes, kan ofte gå tapt i oversettelsen og kan resultere i et produksjonsproblem som kan skje. Dette fører til timevis med feilsøking og tråling gjennom applikasjonsloggene.
I denne opplæringen har vi lært to forskjellige alternativer for å sette opp Paktmegleren. Du har publisert kontrakten ved hjelp av pact-js-rammeverket og også med Postman.
På dette tidspunktet må du tenke på å tilpasse versjonene dine på tvers av mikrotjenestene og også navngi leverandørene dine konsekvent for å skape et lettlest og forståelig Pact Broker-nettverk.
=> Besøk her for å lære kontraktstesting fra grunnen
Anbefalt lesing
- Hvordan skrive en forbrukerpaktest i JavaScript
- Introduksjon til kontraktstesting med eksempler
- Bekreft paktkontrakt og kontinuerlig distribusjon med pakt CLI
- Docker Tutorial: Installasjon og introduksjon til Docker
- Avansert skripting for komplekse tester av arbeidsflyter i postbud
- Hvordan lage API-dokumentasjon i postbud?
- Hvordan bruke Postman til å teste forskjellige API-formater?
- Topp 10 mest populære spørsmål om postbudintervju med svar