Sample code for 30+ languages & platforms
Lua Requires Chilkat v11.0.0+

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

Lua
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="
-- }
--