Getting started with Weka REST API
The Weka system supports a RESTful API. This is useful when automating the interaction with the Weka system and when integrating it into your workflows or monitoring systems.
The API is accessible at port 14000, via the
/api/v2
URL, you can explore it via /api/v2/docs
when accessing from the cluster (e.g. https://weka01:14000/api/v2/docs
).Our static API documentation can be accessed from api.docs.weka.io (the version can be selected from the drop-down list). The
.json
file can also be used to create your client code, using an OpenAPI client generator.You must provide an access token to use the Weka REST API.
To obtain access/refresh tokens via the CLI, refer to Obtaining an Authentication Token section (there you can also generate an access token with a longer expiry time). To obtain access/refresh tokens via the API, you can call the
login
API, providing it a username
and password
. If you already obtained a refresh token, you can use the
login/refresh
API to refresh the access token.Login
Refresh
Python example calling the login API
import requests
url = "https://weka01:14000/api/v2/login"
payload="{\n \"username\": \"admin\",\n \"password\": \"admin\"\n}"
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
Python example calling the login refresh API
import requests
url = "https://weka01:14000/api/v2/login/refresh"
payload="{\n \"refresh_token\": \"REPLACE-WITH-REFRESH-TOKEN\"\n}"
headers = {
'Content-Type': 'application/json'
}
response = requests.request("POST", url, headers=headers, data=payload)
print(response.text)
In response, you will get an access token (valid for 5 minutes), that can be used in the other APIs that require token authentication, along with the refresh token (valid for 1 year), for getting additional access tokens without using the username/password.
Login/Refresh Response
{
"data": [
{
"access_token": "ACCESS-TOKEN",
"token_type": "Bearer",
"expires_in": 300,
"refresh_token": "REFRESH-TOKEN"
}
]
}
Now, that you have obtained an access token, you can call Weka REST API commands with it. For example, you can query the cluster status:
Python example calling cluster status API
import requests
url = "https://weka01:14000/api/v2/cluster"
payload={}
headers = {
'Authorization': 'Bearer REPLACE-WITH-ACCESS-TOKEN'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
Related topics