Lua Requires Chilkat v11.0.0+
Lua
Send JSON REST Request, Get JSON Response
See more REST Examples
Demonstrates sending a RESTful JSON request, and receiving a JSON response. This example will create a bucket in Google Cloud Storage (which involves sending and receiving JSON).Chilkat Lua Downloads
local chilkat = require("chilkat")
-- This example will create a bucket in Google Cloud Storage.
-- It requires the Chilkat API to have been previously unlocked.
-- See Global Unlock Sample for sample code.
local gAuth = chilkat.AuthGoogle.new()
-- Obtain an access token as shown in one of the following examples:
-- See Get Access Token using a Service Account JSON Key
-- See Get Access Token using a P12 File
local rest = chilkat.Rest.new()
-- Connect using TLS.
local bAutoReconnect = true
local success = rest:connect("www.googleapis.com", 443, true, bAutoReconnect)
-- Provide the authentication credentials (i.e. the access key)
success = rest:set_auth_google(gAuth)
-- Build the JSON request body for creating a bucket.
-- The only required property is the "name", but we'll add more
-- to make a better example..
local jsonReqBody = chilkat.JsonObject.new()
jsonReqBody:append_string("name", "chilkat-bucket-c")
jsonReqBody:append_string("kind", "storage#bucket")
jsonReqBody:append_string("location", "US")
local objVersioning = chilkat.JsonObject.new()
jsonReqBody:append_object2("versioning", objVersioning)
objVersioning:append_bool("enabled", true)
-- Show the HTTP request body we'll be sending.
print(jsonReqBody:emit())
-- Add the required query parameter.
-- See https://cloud.google.com/storage/docs/json_api/v1/buckets/insert
success = rest:add_query_param("project", "chilkattest-1050")
-- Add the Content-Type HTTP request header.
success = rest:add_header("Content-Type", "application/json; charset=UTF-8")
local jsonResponseStr = rest:full_request_string("POST", "/storage/v1/b", jsonReqBody:emit())
if not rest.last_method_success then
print(rest.last_error_text)
return
end
-- Show the JSON response. (See below for a sample JSON response.)
print("Json Response: " .. jsonResponseStr)
-- {
-- "kind": "storage#bucket",
-- "id": "chilkat-bucket-c",
-- "selfLink": "https://www.googleapis.com/storage/v1/b/chilkat-bucket-c",
-- "projectNumber": "999992999999",
-- "name": "chilkat-bucket-c",
-- "timeCreated": "2016-04-29T21:08:10.451Z",
-- "updated": "2016-04-29T21:08:10.451Z",
-- "metageneration": "1",
-- "owner": {
-- "entity": "project-owners-999992999999"
-- },
-- "location": "US",
-- "versioning": {
-- "enabled": true
-- },
-- "storageClass": "STANDARD",
-- "etag": "CAE="
-- }
--