Lua:
Lähettämässä HTTP-pyyntöä
Kuinka:
Lua ei sisällä natiivia HTTP-tukea, joten käytämme kirjastoja. Yleinen valinta on lua-requests
. Tässä nopea esimerkki:
local requests = require('requests')
-- GET-pyyntö
local response = requests.get('https://api.example.com/data')
print(response.status_code)
print(response.text)
-- POST-pyyntö jonkin datan kanssa
local post_response = requests.post('https://api.example.com/post', {data = {key1 = 'value1', key2 = 'value2'}})
print(post_response.status_code)
print(post_response.text)
Esimerkkivastaus voi näyttää tältä:
200
"{\"data\":\"Tässä pyytämäsi tiedot!\"}"
201
"{\"success\":true,\"message\":\"Tiedot vastaanotettu!\"}"
Syväsukellus
Luassa sen yksinkertaisuus ei natiivisti käsitä HTTP:tä, minkä vuoksi kirjastot astuvat kuvaan. lua-requests
heijastelee Python Requests -kirjaston toiminnallisuutta, tehden siitä helpon niille, jotka ovat tuttuja Pythonin kanssa.
Muita vaihtoehtoja sisältävät LuaSocket
alemman tason HTTP-työhön ja luasocket.http
suurempaan kontrolliin. Lualla on myös sidonnaisuuksia libcurl
iin (via Lua-cURL
) monimutkaisiin HTTP-toimintoihin.
Historiallisesti sisäänrakennetun HTTP-tuen puuttuminen heijastaa Luan juuria upotetuissa järjestelmissä, joissa verkkoprogrammointi ei ollut prioriteetti. Sen evoluutio ulkoisten kirjastojen kautta esimerkillistää yhteisön sopeutumiskykyä ja kielen laajennettavuutta.
Toteutuksen kannalta, kun lähetät HTTP-pyynnön, se matkaa verkon yli määriteltyyn palvelimeen. Palvelin käsittelee sen ja vastaa. Luan kirjastot abstrahoivat tarvittavan socket-ohjelmoinnin, käsitellen kaiken verkkoviestinnän pikkutarkan, jotta voit keskittyä itse pyyntöön ja vastaukseen.