A RESTful API-k népszerű architektúrák az interneten keresztüli adatátvitelhez. A RESTful API-k általában HTTP-t használnak, így alkalmasak azokra az esetekre, amikor az állapottalanság fontos.

Mint minden szerveroldali nyelv, a Go alkalmazásban is kommunikálhat a HTTP protokollal, és HTTP-kéréseket hajthat végre.

Az első lépések RESTful API-k használata a Go-ban

Az http csomag biztosítja a legtöbb olyan funkciót, amelyre szüksége van a HTTP protokollal való interakcióhoz a Go alkalmazásban. Ez magában foglalja a HTTP-kéréseket is, és nem feltétlenül kell külső függőségek, például Gin vagy adatbázis.

Használhatja a http csomag az API-k használatához és az oldalak lekéréséhez webkaparás a Go-ban.

Importálja ezeket a csomagokat a HTTP-kérések indításához a Go alkalmazásban.

import (
"bájt"
"kódolás/json"
"fmt"
"io/ioutil"
"net/http"
)

Használja a bájtok csomagot a bájtszeletek manipulálásához, a json csomag a kérési adatok formázásához, a fmt csomag szabványos kimenetre írható, a ioutil csomag a bemenethez és a kimenethez, valamint a http csomag kérések küldéséhez.

instagram viewer

Egy egyszerű GET-kérés a Go-ban

Tipikus KAP adatokat kér egy szerverről, és paramétereket biztosíthat az adatokhoz az API természetétől és specifikációjától függően.

Ebből az oktatóanyagból megtudhatja, hogyan használjon RESTful API-kat a httpbin egyszerű kérés és válasz szolgáltatásával.

Íme egy példa HTTP-kérés indítására a Go segítségével:

url := "https://httpbin.org/get"
válasz, hiba := http. Get (url)

ha hiba! = nulla {
fmt. Printf("Hiba történt a %s API kérésből", hiba. Hiba())
} más {
// folytatódik [1] ...
}

Az url változó az a végpont, amelyre a kérést küldi. Az Kap metódus beveszi az URL-t, végrehajtja a Kap kérést, és visszaadja a választ, beleértve a fejlécet és a törzset is.

A kérésből származó hibákat az Ön igényei szerint kezelheti. Ha nincs hiba, akkor folytathatja a szükséges információk kinyerését a Kap kérés.

} más {
//... [1] folytatta
responseData, err := ioutil. Mindent olvas (válasz. Test)

ha hiba! = nulla {
fmt. Printf("Hiba történt a %s kéréstörzs elemzése során", hiba. Hiba())
} más {
// folytatódik [2] ...
}
}

A válasz Test mező tartja a válasz törzsét. Használni a Mindent olvas módszere a ioutil csomagot, elolvashatja a válasz törzsét, és kezelheti az esetleges hibákat.

} más {
//... [2] folytatás
fmt. Println(húr(válaszadat))
}

Az más utasítás kiírja a válasz törzsét a konzolra, ha nincs hiba az olvasási műveletből.

Íme az eredménye a KAP kérést a httpbin végpontjához.

Egy egyszerű POST-kérés a Go-ban

A tipikus POST kérések adatterhelést biztosítanak a kiszolgálónak, és a szerver a művelettől függően választ ad vissza.

Íme egy egyszerű struktúra egy JSON-adattartalom kódolásához a kiszolgálóra a POST-kérés részeként.

típus JSON struct {
info húr
üzenet húr
}

Az JSON struktúra rendelkezik a info és üzenet karakterlánc mezőket, és inicializál egy struct példányt a kéréshez.

url := "https://httpbin.org/post"

jsonInstance := JSON {
info: "sikerre számítunk",
üzenet: "a kérésnek kell Visszatérés ",
}

Az url változó tárolja a POST kérés végpontját a httpbin webhelyről. Az jsonInstance A változó a JSON-struktúra egy példánya, amelyet strukturált adatok tárolására és küldésére használhat.

Használhatja a Marsall módszer a json csomagot a kérelem JSON formázásához.

jsonData, err := json. Marshal (jsonInstance)
ha hiba! = nulla {
fmt. Println("hiba történt a JSON-ban", err. Hiba())
} más {
// folytatódik [1] ...
}

Az Marsall metódus is kezelhető hibát ad vissza. Ha nincs hiba a JSON-rendezési művelettel kapcsolatban, folytathatja a POST-kérés végrehajtását.

Használhatja a Hozzászólás módszer a POST kérések elkészítésére. Az Hozzászólás metódus veszi az URL-végpontot, a kérés tartalomtípusát és a rakomány pufferét. Visszaadja a választ és egy hibát.

} más {
//... folytatás [1]
válasz, hiba := http. Hozzászólás (url, "application/json", bájt. NewBuffer (jsonData))

ha hiba! = nulla {
fmt. Println("hiba történt a kéréssel", err. Hiba())
} más {
// folytatódik [2] ...
}
}

Ismét elolvashatja a válasz törzsét a Mindent olvas módszere a ioutil csomag:

} más {
//... folytatás [2]
adatok, err := ioutil. Mindent olvas (válasz. Test)

ha hiba! = nulla {
fmt. Println("hiba történt a kéréstörzs olvasásakor", err. Hiba())
} más {
fmt. Println(húr(adat))
}
}

Az Println utasítás kiadja a HTTP-kérés eredményét a konzolra.

Ahogy a httpbin dokumentáció meghatározza, ez a POST-végpont visszaadja az elküldött kérési adatokat.

Webalkalmazások létrehozása a Go-ban egyszerű

Különféle funkciókkal rendelkező webalkalmazásokat készíthet a Go-ban függőségek nélkül.

Az http csomag tartalmazza azokat a funkciókat, amelyekre a legtöbb művelethez szüksége lesz. Ezt a csomagot másokkal is használhatja, mint a json csomag a JSON műveletekhez, a kontextus csomag a jelzéshez, a sabloncsomag pedig a sablonozáshoz. Sok más csomag is található a szabványos könyvtárban.