API-г ашиглах жишээнүүд (C#, curl, Python, Node.js, PowerShell, VBScript)
Энэ хуудсыг AI-аар орчуулж, автоматаар шалгасан. Нарийн тохиргоо хийхээсээ өмнө англи эхтэй тулгаж болно.
Дараах API ашиглалтын жишээнүүд нь үүсгэсэн дараах API түлхүүрийг ашиглана: UjlMS+0m1l9IUZjpjWyJG8gbnv2Mta4T.
C# жишээ
Дараах жишээнд C# ашиглан заасан контейнер доторх endpoint-уудын жагсаалтыг авна.
/** This example makes use of the json-rpc-csharp project:
* https://github.com/adamashton/json-rpc-csharp
*/
String apiURL =
"https://
{domain}
/api/v1.0/jsonrpc/";
// Make a request on the companies API.
Client rpcClient = new Client(apiURL + "network");
String apiKey = "UjlMS+0m1l9IUZjpjWyJG8gbnv2Mta4T";
String userPassString = apiKey + ":";
String authorizationHeader = System.Convert.ToBase64String(
System.Text.Encoding.UTF8.GetBytes(userPassString));
rpcClient.Headers.Add("Authorization",
"Basic " + authorizationHeader);
JToken parameters = new JObject();
parameters["parentId"] = "55d43258b1a43ddf107baad4";
parameters["isManaged"] = True;
parameters["page"] = 1;
parameters["perPage"] = 2;
Request request = rpcClient.NewRequest(
"getEndpointsList", parameters);
Response response = rpcClient.Rpc(request);
if (response.Result != null)
{
JToken result = response.Result;
Console.WriteLine(response.ToString());
}curl жишээ
Дараах жишээнд Network API ашиглан захиалгат бүлгүүдийн жагсаалтыг авна.
curl -i \
-H "Authorization: \
Basic VWpsTVMrMG0xbDlJVVpqcGpXeUpHOGdibnYyTXRhNFQ6" \
-H "Content-Type: application/json" \
-d '{"id": "123456789", "jsonrpc": "2.0",
"method": "getCustomGroupsList", "params": \
{"parentId" : '5582c0acb1a43d9f7f7b23c6'}}' \
-X POST \
https://{domain}/api/v1.0/jsonrpc/network
HTTP/1.1 200 OK
Date: Wed, 10 Jan 2015 13:25:30 GMT
Content-Length: 103
Content-Type: application/json; charset=utf-8
{"id":"123456789","jsonrpc":"2.0","result":
[{'id': '5582c385b1a43deb7f7b23c6', 'name': 'my group 1'},
{'id': '5582d3b3b1a43d897f7b23c8', 'name': 'my group 2'}]}Python жишээ
Одоо endpoint-уудын жагсаалтыг хүсэх болно.
Python 2.7-д
#for non-EU
import base64
import requests
import json
apiKey = "UjlMS+0m1l9IUZjpjWyJG8gbnv2Mta4T"
encodedUserPassSequence = base64.b64encode(apiKey + ":")
authorizationHeader = "Basic " + encodedUserPassSequence
apiEndpoint_Url = "https://cloud.gravityzone.bitdefender.com/api/v1.0/jsonrpc/network"
request = '{"params": {},"jsonrpc": "2.0","method": "getEndpointsList","id": "301f7b05-ec02-481b-9ed6-c07b97de2b7b"}'
result = requests.post(apiEndpoint_Url,data=request,verify=False,headers= {"Content-Type":"application/json","Authorization":authorizationHeader})
print(result.json())#For EU
import base64
import requests
import json
apiKey = "UjlMS+0m1l9IUZjpjWyJG8gbnv2Mta4T"
encodedUserPassSequence = base64.b64encode(apiKey + ":")
authorizationHeader = "Basic " + encodedUserPassSequence
apiEndpoint_Url = "https://cloudgz.gravityzone.bitdefender.com/api/v1.0/jsonrpc/network"
request = '{"params": {},"jsonrpc": "2.0","method": "getEndpointsList","id": "301f7b05-ec02-481b-9ed6-c07b97de2b7b"}'
result = requests.post(apiEndpoint_Url,data=request,verify=False,headers= {"Content-Type":"application/json","Authorization":authorizationHeader})
print(result.json())Python 3-д
#for non-EU
import base64
import requests
import json
apiKey = "UjlMS+0m1l9IUZjpjWyJG8gbnv2Mta4T"
loginString = apiKey + ":"
encodedBytes = base64.b64encode(loginString.encode())
encodedUserPassSequence = str(encodedBytes,'utf-8')
authorizationHeader = "Basic " + encodedUserPassSequence
apiEndpoint_Url = "https://cloud.gravityzone.bitdefender.com/api/v1.0/jsonrpc/network"
request = '{"params": {},"jsonrpc": "2.0","method": "getEndpointsList","id": "301f7b05-ec02-481b-9ed6-c07b97de2b7b"}'
result = requests.post(apiEndpoint_Url,data=request,verify=False,headers= {"Content-Type":"application/json","Authorization":authorizationHeader})
print(result.json())#for EU
import base64
import requests
import json
apiKey = "UjlMS+0m1l9IUZjpjWyJG8gbnv2Mta4T"
loginString = apiKey + ":"
encodedBytes = base64.b64encode(loginString.encode())
encodedUserPassSequence = str(encodedBytes,'utf-8')
authorizationHeader = "Basic " + encodedUserPassSequence
apiEndpoint_Url = "https://cloudgz.gravityzone.bitdefender.com/api/v1.0/jsonrpc/network"
request = '{"params": {},"jsonrpc": "2.0","method": "getEndpointsList","id": "301f7b05-ec02-481b-9ed6-c07b97de2b7b"}'
result = requests.post(apiEndpoint_Url,data=request,verify=False,headers= {"Content-Type":"application/json","Authorization":authorizationHeader})
print(result.json())Node.js жишээ
Энэ жишээнд яг өмнөх дуудлагыг хийх боловч энэ удаа Node.js ашиглана.
// Using the request module:
// npm install request
var request = require('request');
request({
uri: "https://{domain}/ \
api/v1.0/jsonrpc/packages",
method: "POST",
headers: {
'Authorization':
"Basic VWpsTVMrMG0xbDlJVVpqcGpXeUpHOGdibnYyTXRhNFQ6"
},
json: {
"id": "123456789",
"jsonrpc": "2.0",
"method": "getPackagesList",
"params": []
}
}, function(response, body) {
console.log(body);
});
// Output:
// {'jsonrpc': '2.0',
// 'id': '61f4dadc-bd10-448d-af35-16d45a188d9e',
// 'result': {
// 'items': [
// {'type': 3, 'id': '55d4325cb1a43ddf107b241b',
// 'name': 'Default Security Server Package'},
// {'type': 4, 'id': '55d43e34b1a43db5187b23c6',
// 'name': 'My package'}]
// , 'total': 2,
// 'page': 1,
// 'perPage': 30,
// 'pagesCount': 0}
// }PowerShell жишээ
Энэ бол PowerShell скриптийн жишээ. Энэ нь GravityZone API-ийн endpoint руу API дуудлага хийх үндсийг үзүүлнэ.
# Store the API token (change this to your API key)
# For details, refer to the "API Keys" section of this guide.
$api_key = 'UjlMS+0m1l9IUZjpjWyJG8gbnv2Mta4T'
# build the login string (pass is an empty string)
$user = $api_key
$pass = ""
$login = $user + ":" + $pass
# encode the login string to base64
$bytes= [System.Text.Encoding]::UTF8.GetBytes($login)
$encodedlogin=[Convert]::ToBase64String($bytes)
# prepend "Basic " to the encoded login string to obtain
# the auth header
$authheader = "Basic " +
$encodedlogin
# Replace the base_uri string with the correct one# for your console
$base_uri = "https://cloud.gravityzone.bitdefender.com/api"
# Replace the api_endpoint string with the correct one for
# the method used in the request_data# For details, defer to the "API Requests" section
# of this guide.
$api_endpoint = "/v1.0/jsonrpc/network"# Build the request URI
$request_uri = $base_uri + $api_endpoint
# Store the request body in a JSON variable.
# Define the API call method and its parameteres.
# For more details on each API method, refer to the "Reference"
# chapter of this guide.
$request_data = '{
"id":"123456789",
"jsonrpc":"2.0",
"method":"getEndpointsList",
"params":
{
"page":1,
"perPage":3
}
}'
# All required resources are now set.
# You have two options to make the API call.
# First option:
# Add all call parameters in one structure, then call
# Invoke-RestMethod with it.
$params = @{
Uri = $request_uri
Headers = @{
'Authorization' = "$authheader"
'Content-Type' = "application/json"
}
Method = 'POST'
Body = $request_data
ContentType = 'application/json'}
$response = Invoke-RestMethod @params
# Second option:
# Build the headers structure, but specify the
# Invoke-RestMethod parameters inline.
$headers = New-Object `
"System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Authorization",
$authheader)
$headers.Add("Content-Type","application/json")
$response2 = Invoke-RestMethod -Uri $request_uri `
-Headers $headers -ContentType 'application/json' `
-Method Post -Body $request_data
# Random examples of how to address/display the obtained
# call results from the $response and $response2 variables
Write-Output '$response'
Write-Output "~~~~~~~~~~~~~~~~~~~~~~~~~~~"
$response
Write-Output '$response |ConvertTo-Json'
Write-Output "~~~~~~~~~~~~~~~~~~~~~~~~~~~"
$response |ConvertTo-Json
Write-Output '$response.result | ConvertTo-Json'
Write-Output "~~~~~~~~~~~~~~~~~~~~~~~~~~~
"$response.result | ConvertTo-Json
Write-Output '$response.result.items |ConvertTo-Json'
Write-Output "~~~~~~~~~~~~~~~~~~~~~~~~~~~"
$response.result.items |ConvertTo-Json
Write-Output '$response2'
Write-Output "~~~~~~~~~~~~~~~~~~~~~~~~~~~"
$response2
Write-Output '$response2.result'
Write-Output "~~~~~~~~~~~~~~~~~~~~~~~~~~~"
$response2.result
Write-Output '$response2.result.items'
Write-Output "~~~~~~~~~~~~~~~~~~~~~~~~~~~"
$response2.result.items
Write-Output '$response2.result.items.id[0]'
Write-Output "~~~~~~~~~~~~~~~~~~~~~~~~~~~"
$response2.result.items.id[0]
Write-Output '$response2.result.items.name[1]'
Write-Output "~~~~~~~~~~~~~~~~~~~~~~~~~~~"
$response2.result.items.name[1]
Write-Output '$response2.result.items[1] |ConvertTo-Json'
Write-Output "~~~~~~~~~~~~~~~~~~~~~~~~~~~"
$response2.result.items[1] |ConvertTo-JsonVBScript жишээ
Энэ бол VBScript-ийн жишээ. Энэ нь GravityZone API-ийн endpoint руу API дуудлага хийх үндсийг үзүүлнэ.
{{'These are for displaying the results of the call.
Set fso = CreateObject ("Scripting.FileSystemObject")
Set stdout = fso.GetStandardStream (1)
Set stderr = fso.GetStandardStream (2)
'These are some helping funtions used for base64 encoding
'of the authorization header.
Private Function Stream_StringToBinary(Text)
Const adTypeText = 2
Const adTypeBinary = 1
Dim BinaryStream 'As New Stream
Set BinaryStream = CreateObject("ADODB.Stream")
BinaryStream.Type = adTypeText
BinaryStream.CharSet = "us-ascii"
BinaryStream.Open
BinaryStream.WriteText Text
BinaryStream.Position = 0
BinaryStream.Type = adTypeBinary
BinaryStream.Position = 0
Stream_StringToBinary = BinaryStream.Read
Set BinaryStream = Nothing
End Function
Function Base64Encode(sText)
Dim oXML, oNode
Set oXML = CreateObject("Msxml2.DOMDocument.3.0")
Set oNode = oXML.CreateElement("base64")
oNode.dataType = "bin.base64"
oNode.nodeTypedValue = Stream_StringToBinary(sText)
Base64Encode = Replace(oNode.text, chr(10), "")
Set oNode = Nothing
Set oXML = Nothing
End Function
'Store the API token.
'Make sure to change the string with your actual API key.
'For more information, refer to the "API Keys" section
'of this guide.
api_key = "UjlMS+0m1l9IUZjpjWyJG8gbnv2Mta4T"
'Build the login string.
'Note: pass is an empty string.
user = api_key
pass = ""
login = user & ":" & pass
'Encode the login string to base64.
encodedlogin = Base64Encode(login)
'Prepend "Basic " to the encoded login string to obtain
'the auth header.
authheader = "Basic " & encodedlogin
'Change the base_uri string with the correct one for your console.
base_uri = "https://cloud.gravityzone.bitdefender.com/api"
'Change the api_endpoint string with the correct one
'for the method used in the request_data.
'For details, refer to "API Requests" section of this guide.
api_endpoint = "/v1.0/jsonrpc/network"
'Build the request URI.
request_uri = base_uri & api_endpoint
'Create the body of the request.
'Define the API call method and its parameteres.
'For more information, refer to the "Reference" chapter
'of this guide.
'Note: Due to limited page width, the strJSONRequest string
'is on multiple lines. You need to put it on one line.
strJSONRequest = "{""id"":""123456789"",
""jsonrpc"":""2.0"",
""method"":""getEndpointsList"",
""params"":{""page"":1,""perPage"":3}}"
'All required resources are set.
'Make the API call.
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "POST", request_uri, False
objHTTP.setRequestHeader "Authorization", authheader
objHTTP.setRequestHeader "Content-Type", "application/json"
objHTTP.send (strJSONRequest)
'Examples of how to display call reponse:
stdout.WriteLine "Response Code: " & objHTTP.status
stdout.WriteLine "Response Headers: " & objHTTP.getAllResponseHeaders
stdout.WriteLine "Response Data: " & objHTTP.ResponseText}Энэ хуудсанд гарсан нэр томъёо
- Endpoint
- Хамгаалж буй компьютер, сервер, виртуал машин
- Network
- Таны байгууллагын бүх төхөөрөмжийн жагсаалт (Inventory)
