RESTful API ir populāras arhitektūras datu pārsūtīšanai tīmeklī. RESTful API parasti izmanto HTTP, padarot tās piemērotas gadījumiem, kad bezvalstniecība ir svarīga.

Tāpat kā jebkura servera puses valoda, Go var mijiedarboties ar HTTP protokolu un veikt HTTP pieprasījumus.

Darba sākšana RESTful API izmantošana Go

The http pakotne nodrošina lielāko daļu funkcionalitātes, kas nepieciešama, lai mijiedarbotos ar HTTP protokolu pakalpojumā Go. Tas ietver HTTP pieprasījumu veikšanu, un jums tas nav obligāti nepieciešams ārējās atkarības, piemēram, Džins vai datu bāze.

Jūs varat izmantot http pakotne, lai izmantotu API un ielādētu lapas tīmekļa skrāpēšana Go.

Importējiet šīs pakotnes, lai lietotnē Go sāktu veikt HTTP pieprasījumus.

imports (
"baiti"
"kodējums/json"
"fmt"
"io/ioutil"
"net/http"
)

Jūs izmantosit baiti pakotne, lai manipulētu ar baitu šķēlītēm, json pakotne pieprasījuma datu formatēšanai, fmt pakotne, lai ierakstītu standarta izvadē, ioutil pakotne ievadei un izvadei, un http pakete pieprasījumu nosūtīšanai.

Vienkāršs GET pieprasījums pakalpojumā Go

Tipiski GŪT pieprasa nolasīt datus no servera un var nodrošināt datu parametrus atkarībā no API veida un specifikācijas.

Šajā apmācībā jūs uzzināsit, kā izmantot RESTful API, izmantojot httpbin vienkāršo pieprasījumu un atbildes pakalpojumu.

Šeit ir piemērs HTTP pieprasījuma veikšanai, izmantojot Go:

url := "https://httpbin.org/get"
atbilde, kļūda := http. Iegūt (URL)

ja kļūda! = nulle {
fmt. Printf ("Radās kļūda no API pieprasījuma %s", kļūda. Kļūda())
} cits {
// turpina [1] ...
}

The url mainīgais ir galapunkts, uz kuru sūtāt pieprasījumu. The gūt metode uzņem URL, izpilda gūt pieprasījumu un atgriež atbildi, tostarp tās galvenes un pamattekstu.

Atkarībā no jūsu prasībām varat apstrādāt visas pieprasījuma kļūdas. Ja kļūdu nav, varat turpināt iegūt nepieciešamo informāciju no gūt pieprasījumu.

} cits {
//... [1] turpinājums
responseData, err := ioutil. Lasīt visu (atbilde. korpuss)

ja kļūda! = nulle {
fmt. Printf ("Radās kļūda, analizējot pieprasījuma pamattekstu %s", kļūda. Kļūda())
} cits {
// turpinās [2] ...
}
}

Atbilde ir Ķermenis lauks satur atbildes ķermeni. Izmantojot Lasīt visu metode ioutil pakotni, varat izlasīt atbildes pamattekstu un rīkoties ar iespējamām kļūdām.

} cits {
//... [2] turpinājums
fmt. Println(virkne(responseData))
}

The cits paziņojums izdrukā atbildes pamattekstu jūsu konsolei, ja lasīšanas darbībā nav kļūdu.

Lūk, rezultāts GŪT pieprasījumu httpbin galapunktam.

Vienkāršs POST pieprasījums pakalpojumā Go

Tipiski POST pieprasījumi nodrošina datu lietderīgo slodzi serverim, un serveris atgriež atbildi atkarībā no darbības.

Šeit ir vienkārša struktūra JSON derīgās slodzes kodēšanai serverī kā daļa no POST pieprasījuma.

veids JSON struktūra {
info virkne
ziņa virkne
}

The JSON struktūrai ir info un ziņa virknes lauki, un jūs inicializēsit pieprasījuma struktūras gadījumu.

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

jsonInstance := JSON {
info: "gaida panākumus",
ziņojums: "pieprasījumam vajadzētu būt atgriezties ",
}

The url mainīgais saglabā POST pieprasījuma galapunktu no httpbin vietnes. The jsonInstance mainīgais ir JSON struktūras gadījums, ko varat izmantot strukturētu datu glabāšanai un sūtīšanai.

Jūs varat izmantot maršals metode no json pakotni, lai formatētu pieprasījuma JSON.

jsonData, err := json. Marshal (jsonInstance)
ja kļūda! = nulle {
fmt. Println ("JSON radās kļūda", kļūda. Kļūda())
} cits {
// turpina [1] ...
}

The maršals metode arī atgriež kļūdu, ar kuru varat rīkoties. Ja JSON šķirošanas darbībā nav kļūdu, varat turpināt POST pieprasījuma izpildi.

Jūs varat izmantot Post metode POST pieprasījumu veikšanai. The Post metode ņem URL galapunktu, pieprasījuma satura veidu un lietderīgās slodzes buferi. Tas atgriež atbildi un kļūdu.

} cits {
//... turpinājums [1]
atbilde, kļūda := http. Post (url, "application/json", baiti. NewBuffer (jsonData))

ja kļūda! = nulle {
fmt. Println ("pieprasījumā radās kļūda", kļūda. Kļūda())
} cits {
// turpinās [2] ...
}
}

Atkal varat izlasīt atbildes pamattekstu, izmantojot Lasīt visu metode ioutil iepakojums:

} cits {
//... turpinājums [2]
dati, kļūda := ioutil. Lasīt visu (atbilde. korpuss)

ja kļūda! = nulle {
fmt. Println ("nolasot pieprasījuma pamattekstu, radās kļūda", kļūda. Kļūda())
} cits {
fmt. Println(virkne(dati))
}
}

The Println paziņojums izvada HTTP pieprasījuma rezultātu jūsu konsolei.

httpbin dokumentācija norāda, šis POST galapunkts atgriež pieprasījuma datus, ko jūs to nosūtāt.

Tīmekļa lietotņu izveide pakalpojumā Go ir vienkārša

Programmā Go varat izveidot tīmekļa lietojumprogrammas ar dažādām funkcijām bez atkarībām.

The http pakotnei ir funkcijas, kas jums būs nepieciešamas lielākajai daļai jūsu darbību. Jūs varat izmantot šo paketi ar citiem, piemēram, json pakotne JSON operācijām, kontekstā pakete signalizācijai un veidņu pakotne veidņu veidošanai. Standarta bibliotēkā ir daudz citu pakotņu.