Calling IguanaX APIs
Calling IguanaX APIs locally:
If you are calling Iguana's APIs from a Translator within the same Iguana instance, you can use the iguana.call()
function to call the API. This allows you to quickly call the desired API without having to authenticate.
When performing actions on targeted components, you can provide a list of component names or GUIDs to identify components. However, best practice is to use the component GUID as these are permanent IDs where as a component name can be modified.
Calling IguanaX APIs externally:
If you are calling Iguana's APIs from outside of Iguana or from a different Iguana instance, you will need to use the net.http.\*
and authenticate before making API requests. This involves three steps:
STEP 1: Call the '/session/login' API to login, authenticate, and retrieve the session cookie.
Call the '/session/login' API passing your Iguana login credentials to authenticate and get a session cookie from the response header.
STEP 2: Use the session cookie to authenticate subsequent Iguana API requests
In this example we are calling the '/component/list' API to get a list of all components on the Iguana instance.
To call the API, the retrieved session cookie is included in the header of Iguana API requests to authenticate. View the request's response using the Annotations!
STEP 3: Call the '/session/logout' API to logout using the session cookie.
Call the '/session/logout' API to pass the session cookie to logout when finished.
Try this out in the Translator with the following code:
local function login(Credentials)
-- url–encoded POST parameters
local _, _, header = net.http.post{
url = ’127.0.0.1:7654/session/login’,
parameters = Credentials,
live = true
}
-- return only the set cookie from header
return header["Set–Cookie"]:split(’;’)[1]
end
local function logout(Cookie)
net.http.post{
url = ’127.0.0.1:7654/session/logout’,
headers = {[’Cookie’] = Cookie},
live = true
}
end
function main()
local credentials = {
username=’admin’,
password=’password’
}
-- Log in and get a session cookie
local cookie = login(credentials)
-- Call an Iguana X API using the cookie
local componentList = net.http.post{
url = ’127.0.0.1:7654/component/list’,
headers = {[’Cookie’] = cookie},
live = true
}
local componentList = json.parse{data=componentList}
-- Make more API calls with the cookie
-- Log out
logout(cookie)
end