Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Rakenteet ovat yksi Go-ohjelmointikielen tärkeimmistä ja yleisesti käytetyistä tietotyypeistä. Monet paketit eri toiminnallisuuksissa tietokantapaketeista ORM: iin ja jotkin verkkokehykset käyttävät rakenteita tietojen helppoon jäsentämiseen ja muihin toimintoihin.

Rakenteiden validointi on yleinen tehtävä Gossa, ja Go-validaattoripaketti tarjoaa yksinkertaisen ja tehokkaan tavan validoida rakenteita projekteissasi.

Mikä on Go Validator -paketti

The Mene validaattoriin paketti toteuttaa arvojen tarkistuksia structille ja yksittäisille kentille struct-määrityksessä määritettyjen tunnisteiden perusteella.

Go-validaattoripaketti tarjoaa ominaisuuksia kenttien ja rakenteiden väliseen validointiin käyttämällä tunnisteita, viipaleita, taulukoita ja karttasukellusta, jotka mahdollistavat moniulotteinen kenttien validointi, mukautetun kentän validointi, mukautettujen kenttien nimien poimiminen, mukautettavat virheilmoitukset ja tuki suosittu

instagram viewer
Gin-kehys paketin oletusarvostelijana.

Suorita jokin näistä komennoista työhakemistosi päätteessä asentaaksesi validaattori paketti.

mennä hanki gopkg.in/mennä-leikkikenttä/validator.v9
mennä hanki github.com/mennä-leikkikenttä/validaattori/v10

Versiot ovat URL-osoitteen pääte. Ensimmäinen komento asentaa paketin version 9 ja toinen paketin version 10.

Paketin asennuksen jälkeen voit tuoda paketin projekteihin asennetun version mukaan.

tuonti (
"gopkg.in/go-playground/validator.v9"
)

Voit nyt jatkaa Go validator -paketin käyttöä. Jos asennuksessa on ongelmia, yritä asentaa uudelleen/päivittää uusimpaan Go-versioon.

Rakenteiden validointi Validator-paketilla

Sinun on luotava esiintymä validaattori. Vahvista struct, määritä struct, jonka haluat vahvistaa käyttämällä vahvistustunnisteita määrittääksesi kenttien vahvistussäännöt.

Näin voit luoda esiintymän validaattori. Vahvista struct.

funcpää() {
validoi := validaattori. Uusi()
}

Voit määrittää vahvistettavan rakenteen määrittämällä kenttiin tunnisteita ja asettamalla siten vahvistussääntöjä. Validointitunnisteet ovat struct-kenttämääritelmien erityisiä huomautuksia, jotka määrittävät säännöt.

Tässä on tavallinen validointirakenne.

tyyppi Käyttäjä struct {
Nimi merkkijono
Ikä int
Sähköposti merkkijono
}

Tässä on esimerkki rakenteesta, joka on valmis validointiin.

tyyppi Käyttäjä struct {
Nimi merkkijono`validate:"pakollinen"`
Ikä int`validate:"gte=0,lte=130"`
Sähköposti merkkijono`validate:"pakollinen, sähköposti"`
}

Tässä esimerkissä määritit Nimi kenttä, kuten instantiossa vaaditaan, Ikä kentän on oltava suurempi tai yhtä suuri kuin 0 ja pienempi tai yhtä suuri kuin 130, ja Sähköposti kenttä on pakollinen, ja sen on oltava kelvollinen sähköpostiosoite luomishetkellä.

Go validator -pakettiin on saatavilla erilaisia ​​vahvistustunnisteita, mukaan lukien tunnisteet pakollisille kentille, minimi- ja enimmäisarvoille ja säännöllisiä lausekkeita. Löydät täydellisen luettelon käytettävissä olevista vahvistustunnisteista Go validator -paketin dokumentaatiosta.

Kun olet määrittänyt vahvistettavan rakenteen ja määrittänyt validointisäännöt kullekin kentälle, voit käyttää Rakenne menetelmä validaattori. Vahvista struct vahvistaaksesi rakenteen.

käyttäjä := Käyttäjä{
// Nimeä ei ole muotoiltu
Ikä: 3990000,
Sähköposti: "[email protected]",
}
// Huomaa, että Nimi- ja Ikä-kenttien vahvistus epäonnistuu

err := vahvista. Rakenne (käyttäjä)
jos virhe! = nolla {
// Rakenne on virheellinen
}

The Rakenne menetelmä palauttaa virheen, jos vahvistusvirheitä on, ja voit käsitellä virheen toimintosi perusteella.

Näihin virheisiin pääsee käsiksi käyttämällä Validation Errors virheen menetelmä.

jos virhe! = nolla {
varten _, virhe := alue err. (validaattori. ValidationErrors) {
fmt. Println (err. Kenttä(), err. Tag())
}
}

The Validation Errors menetelmä palauttaa jokaisen vahvistusvirheen sisältävän kentän nimen ja virheen aiheuttaneen vahvistustunnisteen.

Voit myös määrittää mukautettuja vahvistustunnisteita, jos tietyt vahvistusvaatimukset eivät ole osa sisäänrakennettuja tunnisteita.

Voit käyttää RegisterValidation menetelmä validaattori. Vahvista struct. The RegisterValidation menetelmässä on kaksi argumenttia; vahvistustunnisteen nimi ja vahvistustoiminto. Vahvistusfunktio on takaisinsoittofunktio, jota kutsutaan jokaiselle kentälle, jolla on mukautettu vahvistustunniste, ja funktion on palautettava totta jos kenttä on kelvollinen ja väärä jos toisin.

Tässä on esimerkki mukautetun vahvistustunnisteen määritelmästä. Tunniste vahvistaa kentät parillisille numeroille.

vahvistaa. RegisterValidation("jopa", func(fl validaattori. FieldLevel)bool {
// Yritä saada kentän arvo int
arvo, ok := fl. Field().Interface().(int)
jos !ok {
// Jos kentän arvo ei ole int, palauta false
palataväärä
}
// Palauttaa tosi, jos arvo on parillinen, false, muuten
palata arvo % 2 == 0
})

Koodi määrittää mukautetun vahvistustunnisteen jopa käyttämällä RegisterValidation menetelmä validaattori. Vahvista struct. Määritit vahvistustunnisteen käyttämällä funktiota, joka ottaa yhden tyyppisen argumentin validaattori. Kenttätaso.

Voit nyt käyttää mukautettua vahvistustunnistetta struct-määritelmissä samalla tavalla kuin sisäänrakennetuissa vahvistustunnisteissa.

tyyppi MyStruct struct {
Arvo int`validate:"jopa"`
}

On More to Go Structs

Rakenteet ovat Go: ssa ensiluokkaisia ​​kansalaisia, ja rakenteilla voit tehdä niin paljon. Jos tunnet puhtaasti oliopohjaiset kielet, voit käyttää Go-rakenteita tietojen käsittelyyn samalla tavalla kuin luokkien kanssa.