RESTful API jsou populární architektury pro přenos dat přes web. Rozhraní API RESTful obvykle používají HTTP, takže jsou vhodná pro případy, kdy je důležitá bezstavová.

Jako každý jazyk na straně serveru můžete v Go komunikovat s protokolem HTTP a zadávat požadavky HTTP.

Začínáme Používání RESTful API v Go

The http poskytuje většinu funkcí, které budete potřebovat pro interakci s protokolem HTTP v Go. To zahrnuje vytváření požadavků HTTP, které nutně nepotřebujete externí závislosti, jako je Gin nebo databáze.

Můžete použít http balíček pro použití rozhraní API a načítání stránek seškrabování webu v Go.

Importujte tyto balíčky a začněte vytvářet požadavky HTTP v Go.

import (
"bajty"
"kódování/json"
"fmt"
"io/ioutil"
"net/http"
)

Budete používat bajtů balíček pro manipulaci s bajtovými řezy, the json balíček pro formátování dat požadavku, fmt balíček pro zápis na standardní výstup, the ioutil balíček pro vstup a výstup a http balíček pro zasílání požadavků.

Jednoduchá žádost GET v Go

Typický DOSTAT

instagram viewer
požaduje čtení dat ze serveru a může poskytovat parametry pro data v závislosti na povaze a specifikaci API.

V tomto tutoriálu se dozvíte, jak používat RESTful API pomocí jednoduché služby požadavků a odpovědí httpbin.

Zde je příklad vytvoření požadavku HTTP pomocí Go:

url := "https://httpbin.org/get"
odpověď, chyba := http. Získat (url)

-li chyba!= nula {
fmt. Printf("Došlo k chybě v požadavku API %s", chyba. Chyba())
} jiný {
// pokračuje [1] ...
}

The url proměnná je koncový bod, do kterého posíláte požadavek. The Dostat metoda vezme adresu URL, provede Dostat request a vrátí odpověď, včetně jejích hlaviček a těla.

Případné chyby z požadavku můžete ošetřit v závislosti na vašich požadavcích. Pokud nejsou žádné chyby, můžete přistoupit k extrahování potřebných informací z Dostat žádost.

} jiný {
//... [1] pokračoval
responseData, err := ioutil. ReadAll (odpověď. Tělo)

-li chyba!= nula {
fmt. Printf("Došlo k chybě při analýze těla požadavku %s", err. Chyba())
} jiný {
// pokračuje [2] ...
}
}

Odezva je Tělo pole obsahuje tělo odpovědi. Za použití Přečíst vše metoda ioutil balíček, můžete si přečíst tělo odpovědi a ošetřit případné chyby.

} jiný {
//... [2] pokračoval
fmt. Println(tětiva(responseData))
}

The jiný příkaz vytiskne tělo odpovědi do vaší konzoly, pokud při operaci čtení nejsou žádné chyby.

Zde je výsledek DOSTAT požadavek na koncový bod httpbin.

Jednoduchý POST požadavek v Go

Typické požadavky POST poskytují serveru datovou zátěž a server vrací odpověď v závislosti na operaci.

Zde je jednoduchá struktura pro kódování užitečného zatížení JSON na server jako součást požadavku POST.

typ JSON strukturovat {
info tětiva
zpráva tětiva
}

The JSON struct má info a zpráva pole řetězce a inicializujete instanci struktury pro požadavek.

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

jsonInstance := JSON {
info: "očekávání úspěchu",
zpráva: "žádost by měla vrátit se ",
}

The url proměnná ukládá koncový bod požadavku POST z webu httpbin. The jsonInstance proměnná je instancí struktury JSON, kterou můžete použít k ukládání a odesílání strukturovaných dat.

Můžete použít Maršál metoda z json balíček pro formátování JSON pro požadavek.

jsonData, chyba := json. maršál (jsonInstance)
-li chyba!= nula {
fmt. Println("došlo k chybě s JSON", err. Chyba())
} jiný {
// pokračuje [1] ...
}

The Maršál metoda také vrátí chybu, kterou můžete zvládnout. Pokud se při operaci zařazování JSON nevyskytnou žádné chyby, můžete přistoupit k požadavku POST.

Můžete použít Pošta způsob vytváření požadavků POST. The Pošta metoda přebírá koncový bod URL, typ obsahu požadavku a vyrovnávací paměť užitečného zatížení. Vrátí odpověď a chybu.

} jiný {
//... pokračování [1]
odpověď, chyba := http. Příspěvek (url, "application/json", bajty. NewBuffer (jsonData))

-li chyba!= nula {
fmt. Println("při požadavku došlo k chybě", err. Chyba())
} jiný {
// pokračuje [2] ...
}
}

Opět můžete číst tělo odpovědi pomocí Přečíst vše metoda ioutil balík:

} jiný {
//... pokračování [2]
data, chyba := ioutil. ReadAll (odpověď. Tělo)

-li chyba!= nula {
fmt. Println("při čtení těla požadavku došlo k chybě", err. Chyba())
} jiný {
fmt. Println(tětiva(data))
}
}

The Println výpis vypíše výsledek požadavku HTTP do vaší konzole.

Jako dokumentace httpbin určuje, že tento koncový bod POST vrátí data požadavku, která mu odešlete.

Vytváření webových aplikací v Go je snadné

V Go můžete vytvářet webové aplikace s různými funkcemi bez závislostí.

The http balíček má funkce, které budete potřebovat pro většinu svých operací. Tento balíček můžete použít s dalšími podobnými json balíček pro operace JSON, kontext balíček pro signalizaci a balíček šablon pro šablonování. Ve standardní knihovně je mnoho dalších balíčků.