
ఇప్పటివరకు పనిచేసిన ప్రతి ఒక్కరికీ నేను ఖచ్చితంగా ఉంటాను , గురించి ఫిర్యాదు వచ్చింది కమాండ్ లైన్ నుండి కాన్ఫిగరేషన్ను సవరించడం అసంభవం. గతంలో సిస్కో ASAతో పనిచేసిన వారికి ఇది చాలా వింతగా ఉంటుంది, ఇక్కడ ఖచ్చితంగా ప్రతిదీ CLIలో కాన్ఫిగర్ చేయవచ్చు. చెక్ పాయింట్తో ఇది మరొక మార్గం - అన్ని భద్రతా సెట్టింగ్లు గ్రాఫికల్ ఇంటర్ఫేస్ నుండి ప్రత్యేకంగా నిర్వహించబడతాయి. అయితే, కొన్ని విషయాలు GUI ద్వారా చేయడం పూర్తిగా అసౌకర్యంగా ఉంటాయి (చెక్ పాయింట్ల వలె అనుకూలమైనది కూడా). ఉదాహరణకు, 100 కొత్త హోస్ట్లు లేదా నెట్వర్క్లను జోడించే పని సుదీర్ఘమైన మరియు దుర్భరమైన ప్రక్రియగా మారుతుంది. ప్రతి వస్తువు కోసం మీరు అనేక సార్లు మౌస్ క్లిక్ చేసి IP చిరునామాను నమోదు చేయాలి. సైట్ల సమూహాన్ని సృష్టించడం లేదా IPS సంతకాలను మాస్ ఎనేబుల్ చేయడం/డిజేబుల్ చేయడం కూడా ఇదే. ఈ సందర్భంలో, తప్పు చేసే అధిక సంభావ్యత ఉంది.
సాపేక్షంగా ఇటీవల "అద్భుతం" జరిగింది. కొత్త వెర్షన్ విడుదలతో గియా R80 అవకాశం ప్రకటించారు API వినియోగం, ఇది ఆటోమేట్ సెట్టింగ్లు, అడ్మినిస్ట్రేషన్, పర్యవేక్షణ మొదలైన వాటి కోసం విస్తృత అవకాశాలను తెరుస్తుంది. ఇప్పుడు మీరు చేయవచ్చు:
- వస్తువులను సృష్టించండి;
- యాక్సెస్ జాబితాలను జోడించండి లేదా సవరించండి;
- బ్లేడ్లను ఎనేబుల్/డిసేబుల్;
- నెట్వర్క్ ఇంటర్ఫేస్లను కాన్ఫిగర్ చేయండి;
- విధానాలను ఇన్స్టాల్ చేయండి;
- మరియు మరింత.
నిజం చెప్పాలంటే, ఈ వార్త హబ్ర్ ద్వారా ఎలా పంపబడిందో నాకు అర్థం కాలేదు. ఈ కథనంలో మేము APIని ఎలా ఉపయోగించాలో క్లుప్తంగా వివరిస్తాము మరియు అనేక ఆచరణాత్మక ఉదాహరణలను అందిస్తాము. స్క్రిప్ట్లను ఉపయోగించి చెక్పాయింట్ సెట్టింగ్లు.
API నిర్వహణ సర్వర్ కోసం మాత్రమే ఉపయోగించబడుతుందని నేను వెంటనే రిజర్వేషన్ చేయాలనుకుంటున్నాను. ఆ. మేనేజ్మెంట్ సర్వర్ లేకుండా గేట్వేలను నిర్వహించడం ఇప్పటికీ అసాధ్యం.
సూత్రప్రాయంగా ఈ APIని ఎవరు ఉపయోగించగలరు?
- రొటీన్ చెక్ పాయింట్ కాన్ఫిగరేషన్ టాస్క్లను సులభతరం చేయాలనుకునే లేదా ఆటోమేట్ చేయాలనుకునే సిస్టమ్ నిర్వాహకులు;
- చెక్ పాయింట్ని ఇతర పరిష్కారాలతో (వర్చువలైజేషన్ సిస్టమ్లు, టిక్కెట్ సిస్టమ్లు, కాన్ఫిగరేషన్ మేనేజ్మెంట్ సిస్టమ్లు మొదలైనవి) ఏకీకృతం చేయాలనుకునే కంపెనీలు;
- సెట్టింగ్లను ప్రామాణికం చేయాలనుకునే లేదా అదనపు చెక్ పాయింట్-సంబంధిత ఉత్పత్తులను సృష్టించాలనుకునే సిస్టమ్ ఇంటిగ్రేటర్లు.
సాధారణ పథకం
కాబట్టి, చెక్ పాయింట్తో ఒక సాధారణ పథకాన్ని ఊహించుకుందాం:

ఎప్పటిలాగే మనకు గేట్వే ఉంది (SG), నిర్వహణ సర్వర్ (SMS) మరియు అడ్మిన్ కన్సోల్ (స్మార్ట్ కన్సోల్) ఈ సందర్భంలో, సాధారణ గేట్వే కాన్ఫిగరేషన్ ప్రక్రియ ఇలా కనిపిస్తుంది:

ఆ. మొదట మీరు నిర్వాహకుని కంప్యూటర్లో అమలు చేయాలి స్మార్ట్ కన్సోల్, దీనితో మేము మేనేజ్మెంట్ సర్వర్కి కనెక్ట్ చేస్తాము (SMS) భద్రతా సెట్టింగ్లు SMSలో తయారు చేయబడతాయి మరియు ఆ తర్వాత మాత్రమే వర్తించబడతాయి (విధానాన్ని ఇన్స్టాల్ చేయండి) గేట్వేకి (SG).
ఉపయోగించి నిర్వహణ API, మేము ప్రాథమికంగా మొదటి పాయింట్ను దాటవేయవచ్చు (SmartConsoleని ప్రారంభించండి) మరియు ఉపయోగించవచ్చు API ఆదేశాలు నేరుగా మేనేజ్మెంట్ సర్వర్కు (SMS).
APIని ఉపయోగించడానికి మార్గాలు
APIని ఉపయోగించి కాన్ఫిగరేషన్ని సవరించడానికి నాలుగు ప్రధాన మార్గాలు ఉన్నాయి:
1) mgmt_cli యుటిలిటీని ఉపయోగించడం
ఉదాహరణ - # mgmt_cli హోస్ట్ పేరు హోస్ట్1 ip-అడ్రస్ 192.168.2.100 జోడించండి
ఈ ఆదేశం నిర్వహణ సర్వర్ (SMS) కమాండ్ లైన్ నుండి అమలు చేయబడుతుంది. కమాండ్ యొక్క సింటాక్స్ స్పష్టంగా ఉందని నేను భావిస్తున్నాను - హోస్ట్ 1 చిరునామా 192.168.2.100తో సృష్టించబడింది.
2) క్లిష్ ద్వారా API ఆదేశాలను నమోదు చేయండి (నిపుణుల మోడ్లో)
సాధారణంగా, మీరు చేయవలసిందల్లా కమాండ్ లైన్ (mgmt లాగిన్) SmartConsole (లేదా రూట్ ఖాతా) ద్వారా కనెక్ట్ చేసేటప్పుడు ఉపయోగించే ఖాతా కింద. అప్పుడు మీరు ప్రవేశించవచ్చు API ఆదేశాలు (ఈ సందర్భంలో ప్రతి కమాండ్కు ముందు యుటిలిటీని ఉపయోగించాల్సిన అవసరం లేదు mgmt_cli) మీరు పూర్తి స్థాయిని సృష్టించవచ్చు బాష్ స్క్రిప్ట్లు. హోస్ట్ సృష్టించే స్క్రిప్ట్ యొక్క ఉదాహరణ:
బాష్ స్క్రిప్ట్
#!/bin/bash
main() {
clear
#LOGIN (don't ask for username and password, user is already logged in to Management server as 'root' user)
mgmt_cli login --root true > id_add_host.txt
on_error_print_and_exit "Error: Failed to login, check that the server is up and running (run 'api status')"
#READ HOST NAME
printf "Enter host name:n"
read -e host_name
on_empty_input_print_and_exit "$host_name" "Error: The host's name cannot be empty."
#READ IP ADDRESS
printf "nEnter host IP address:n"
read -e ip
on_empty_input_print_and_exit "$ip" "Error: The host's IP address cannot be empty."
#CREATE HOST
printf "Creating new host: $host_name with IP address: $ipn"
new_host_response=$(mgmt_cli add host name $host_name ip-address $ip -s id_add_host.txt 2> /dev/null)
on_error_print_and_exit "Error: Failed to create host object. n$new_host_response"
#PUBLISH THE CHANGES
printf "nPublishing the changesn"
mgmt_cli publish --root true -s id_add_host.txt &> /dev/null
on_error_print_and_exit "Error: Failed to publish the changes."
#LOGOUT
logout
printf "Done.n"
}
logout(){
mgmt_cli logout --root true -s id_add_host.txt &> /dev/null
}
on_error_print_and_exit(){
if [ $? -ne 0 ]; then
handle_error "$1"
fi
}
handle_error(){
printf "n$1n" #print error message
mgmt_cli discard --root true -s id_add_host.txt &> /dev/null
logout
exit 1
}
on_empty_input_print_and_exit(){
if [ -z "$1" ]; then
printf "$2n" #print error message
logout
exit 0
fi
}
# Script starts here. Call function "main".
main
మీకు ఆసక్తి ఉంటే, మీరు సంబంధిత వీడియోను చూడవచ్చు:

3) CLI విండోను తెరవడం ద్వారా SmartConsole ద్వారా
మీరు చేయాల్సిందల్లా విండోను తెరవండి CLI నేరుగా నుండి స్మార్ట్ కన్సోల్, దిగువ చిత్రంలో చూపిన విధంగా.

ఈ విండోలో, మీరు వెంటనే API ఆదేశాలను నమోదు చేయడం ప్రారంభించవచ్చు.
4) వెబ్ సేవలు. HTTPS పోస్ట్ అభ్యర్థన (REST API) ఉపయోగించండి
మా అభిప్రాయం ప్రకారం, ఇది అత్యంత ఆశాజనకమైన పద్ధతుల్లో ఒకటి, ఎందుకంటే ఆధారంగా మొత్తం అప్లికేషన్లను "బిల్డ్" చేయడానికి మిమ్మల్ని అనుమతిస్తుంది నిర్వహణ సర్వర్ నిర్వహణ (టాటాలజీకి క్షమించండి). క్రింద మేము ఈ పద్ధతిని కొంచెం వివరంగా పరిశీలిస్తాము.
సంగ్రహించేందుకు:
- API + cli సిస్కోకు అలవాటుపడిన వ్యక్తులకు మరింత అనుకూలంగా ఉంటుంది;
- API + షెల్ స్క్రిప్ట్లను వర్తింపజేయడం మరియు సాధారణ పనులను చేయడం కోసం;
- REST API ఆటోమేషన్ కోసం.
APIని ప్రారంభిస్తోంది
డిఫాల్ట్గా, 4GB కంటే ఎక్కువ RAM మరియు 8GB కంటే ఎక్కువ RAM ఉన్న స్వతంత్ర కాన్ఫిగరేషన్లతో నిర్వహణ సర్వర్లపై API ప్రారంభించబడుతుంది. మీరు ఆదేశాన్ని ఉపయోగించి స్థితిని తనిఖీ చేయవచ్చు: api స్థితి
Api నిలిపివేయబడిందని తేలితే, SmartConsole ద్వారా దీన్ని ప్రారంభించడం చాలా సులభం: నిర్వహించండి & సెట్టింగ్లు > బ్లేడ్లు > మేనేజ్మెంట్ API > అధునాతన సెట్టింగ్లు

ఆపై ప్రచురించండి (ప్రచురించు) మార్పులు మరియు ఆదేశాన్ని అమలు చేయండి api పునఃప్రారంభించండి.
వెబ్ అభ్యర్థనలు + పైథాన్
API ఆదేశాలను అమలు చేయడానికి, మీరు ఉపయోగించి వెబ్ అభ్యర్థనలను ఉపయోగించవచ్చు పైథాన్ మరియు గ్రంథాలయాలు అభ్యర్థనలు, JSON. సాధారణంగా, వెబ్ అభ్యర్థన యొక్క నిర్మాణం మూడు భాగాలను కలిగి ఉంటుంది:
1) చిరునామా
(https://<managemenet server>:<port>/web_api/<command>)
2) HTTP హెడర్లు
content-Type: application/json
x-chkp-sid: <session ID token as returned by the login command>
3) పేలోడ్ను అభ్యర్థించండి
విభిన్న పారామితులను కలిగి ఉన్న JSON ఆకృతిలో వచనం
వివిధ ఆదేశాలను కాల్ చేయడానికి ఉదాహరణ:
def api_call(ip_addr, port, command, json_payload, sid):
url = 'https://' + ip_addr + ':' + str(port) + '/web_api/' + command
if sid == “”:
request_headers = {'Content-Type' : 'application/json'}
else:
request_headers = {'Content-Type' : 'application/json', 'X-chkp-sid' : sid}
r = requests.post(url,data=json.dumps(json_payload), headers=request_headers,verify=False)
return r.json()
'xxx.xxx.xxx.xxx' -> Ip address GAIA
చెక్ పాయింట్ని నిర్వహించేటప్పుడు మీరు తరచుగా ఎదుర్కొనే కొన్ని సాధారణ పనులు ఇక్కడ ఉన్నాయి.
1) అధికార మరియు లాగ్అవుట్ ఫంక్షన్ల ఉదాహరణ:
స్క్రిప్ట్
payload = {‘user’: ‘your_user’, ‘password’ : ‘your_password’}
response = api_call('xxx.xxx.xxx.xxx', 443, 'login',payload, '')
return response["sid"]
response = api_call('xxx.xxx.xxx.xxx', 443,'logout', {} ,sid)
return response["message"]
2) బ్లేడ్లను ఆన్ చేయడం మరియు నెట్వర్క్ను సెటప్ చేయడం:
స్క్రిప్ట్
new_gateway_data = {'name':'CPGleb','anti-bot':True,'anti-virus' : True,'application-control':True,'ips':True,'url-filtering':True,'interfaces':
[{'name':"eth0",'topology':'external','ipv4-address': 'xxx.xxx.xxx.xxx',"ipv4-network-mask": "255.255.255.0"},
{'name':"eth1",'topology':'internal','ipv4-address': 'xxx.xxx.xxx.xxx',"ipv4-network-mask": "255.255.255.0"}]}
new_gateway_result = api_call('xxx.xxx.xxx.xxx', 443,'set-simple-gateway', new_gateway_data ,sid)
print(json.dumps(new_gateway_result))
3) ఫైర్వాల్ నియమాలను మార్చడం:
స్క్రిప్ట్
new_access_data={'name':'Cleanup rule','layer':'Network','action':'Accept'}
new_access_result = api_call('xxx.xxx.xxx.xxx', 443,'set-access-rule', new_access_data ,sid)
print(json.dumps(new_access_result))
4) అప్లికేషన్ లేయర్ జోడించడం:
స్క్రిప్ట్
add_access_layer_application={ 'name' : 'application123',"applications-and-url-filtering" : True,"firewall" : False}
add_access_layer_application_result = api_call('xxx.xxx.xxx.xxx', 443,'add-access-layer', add_access_layer_application ,sid)
print(json.dumps(add_access_layer_application_result))
set_package_layer={"name" : "Standard","access":True,"access-layers" : {"add" : [ { "name" : "application123","position" :2}]} ,"installation-targets" : "CPGleb"}
set_package_layer_result = api_call('xxx.xxx.xxx.xxx', 443,'set-package', set_package_layer ,sid)
print(json.dumps(set_package_layer_result))
5) విధానాన్ని ప్రచురించండి మరియు సెట్ చేయండి, ఆదేశం (టాస్క్-ఐడి) అమలును తనిఖీ చేయండి:
స్క్రిప్ట్
publish_result = api_call('xxx.xxx.xxx.xxx', 443,"publish", {},sid)
print("publish result: " + json.dumps(publish_result))
new_policy = {'policy-package':'Standard','access':True,'targets':['CPGleb']}
new_policy_result = api_call('xxx.xxx.xxx.xxx', 443,'install-policy', new_policy ,sid)
print(json.dumps(new_policy_result)
task_id=(json.dumps(new_policy_result ["task-id"]))
len_str=len(task_id)
task_id=task_id[1:(len_str-1)]
show_task_id ={'task-id':(task_id)}
show_task=api_call('xxx.xxx.xxx.xxx',443,'show-task',show_task_id,sid)
print(json.dumps(show_task))
6) హోస్ట్ని జోడించండి:
స్క్రిప్ట్
new_host_data = {'name':'JohnDoePc', 'ip-address': '192.168.0.10'}
new_host_result = api_call('xxx.xxx.xxx.xxx', 443,'add-host', new_host_data ,sid)
print(json.dumps(new_host_result))
7) ముప్పు నివారణ ఫీల్డ్ను జోడించండి:
స్క్రిప్ట్
set_package_layer={'name':'Standard','threat-prevention' :True,'installation-targets':'CPGleb'}
set_package_layer_result = api_call('xxx.xxx.xxx.xxx', 443,'set-package',set_package_layer,sid)
print(json.dumps(set_package_layer_result))
8) సెషన్ల జాబితాను వీక్షించండి
స్క్రిప్ట్
new_session_data = {'limit':'50', 'offset':'0','details-level' : 'standard'}
new_session_result = api_call('xxx.xxx.xxx.xxx', 443,'show-sessions', new_session_data ,sid)
print(json.dumps(new_session_result))
9) కొత్త ప్రొఫైల్ను సృష్టించండి:
స్క్రిప్ట్
add_threat_profile={'name':'Apeiron', "active-protections-performance-impact" : "low","active-protections-severity" : "low or above","confidence-level-medium" : "prevent",
"confidence-level-high" : "prevent", "threat-emulation" : True,"anti-virus" : True,"anti-bot" : True,"ips" : True,
"ips-settings" : { "newly-updated-protections" : "staging","exclude-protection-with-performance-impact" : True,"exclude-protection-with-performance-impact-mode" : "High or lower"},
"overrides" : [ {"protection" : "3Com Network Supervisor Directory Traversal","capture-packets" : True,"action" : "Prevent","track" : "Log"},
{"protection" : "7-Zip ARJ Archive Handling Buffer Overflow", "capture-packets" : True,"action" : "Prevent","track" : "Log"} ]}
add_threat_profile_result=api_call('xxx.xxx.xxx.xxx',443,'add-threat-profile',add_threat_profile,sid)
print(json.dumps(add_threat_profile_result))
10) IPS సంతకం కోసం చర్యను మార్చండి:
స్క్రిప్ట్
set_threat_protection={
"name" : "3Com Network Supervisor Directory Traversal",
"overrides" : [{ "profile" : "Apeiron","action" : "Detect","track" : "Log","capture-packets" : True},
{ "profile" : "Apeiron", "action" : "Detect", "track" : "Log", "capture-packets" : False} ]}
set_threat_protection_result=api_call('xxx.xxx.xxx.xxx',443,'set-threat-protection',set_threat_protection,sid)
print(json.dumps(set_threat_protection_result))
11) మీ సేవను జోడించండి:
స్క్రిప్ట్
add_service_udp={ "name" : "Dota2_udp", "port" : '27000-27030',
"keep-connections-open-after-policy-installation" : False,
"session-timeout" : 0, "match-for-any" : True,
"sync-connections-on-cluster" : True,
"aggressive-aging" : {"enable" : True, "timeout" : 360,"use-default-timeout" : False },
"accept-replies" : False}
add_service_udp_results=api_call('xxx.xxx.xxx.xxx',443,"add-service-udp",add_service_udp,sid)
print(json.dumps(add_service_udp_results))
12) వర్గం, సైట్ లేదా సమూహాన్ని జోడించండి:
స్క్రిప్ట్
add_application_site_category={ "name" : "Valve","description" : "Valve Games"}
add_application_site_category_results=api_call('xxx.xxx.xxx.xxx',443,"add-application-site-category",add_application_site_category,sid)
print(json.dumps(add_application_site_category_results))
add_application_site={ "name" : "Dota2", "primary-category" : "Valve", "description" : "Dotka",
"url-list" : [ "www.dota2.ru" ], "urls-defined-as-regular-expression" : False}
add_application_site_results=api_call('xxx.xxx.xxx.xxx',443,"add-application-site " ,
add_application_site , sid)
print(json.dumps(add_application_site_results))
add_application_site_group={"name" : "Games","members" : [ "Dota2"]}
add_application_site_group_results=api_call('xxx.xxx.xxx.xxx',443,"add-application-site-group",add_application_site_group,sid)
print(json.dumps(add_application_site_group_results))
అదనంగా, సహాయంతో వెబ్ API మీరు నెట్వర్క్లు, హోస్ట్లు, యాక్సెస్ పాత్రలు మొదలైనవాటిని జోడించవచ్చు మరియు తీసివేయవచ్చు. బ్లేడ్లు అనుకూలీకరించవచ్చు యాంటీవైరస్, యాంటీబాట్, IPS, VPN. ఆదేశాన్ని ఉపయోగించి లైసెన్స్లను ఇన్స్టాల్ చేయడం కూడా సాధ్యమే రన్-స్క్రిప్ట్. అన్ని చెక్ పాయింట్ API ఆదేశాలను ఇక్కడ చూడవచ్చు .
చెక్ పాయింట్ API + పోస్ట్మ్యాన్
ఉపయోగించడానికి కూడా సౌకర్యవంతంగా ఉంటుంది చెక్ పాయింట్ వెబ్ API కలిసి పోస్ట్మ్యాన్కు డెస్క్టాప్ వెర్షన్లు ఉన్నాయి Windows, Linux మరియు MacOS. Google Chrome కోసం ఒక ప్లగిన్ కూడా ఉంది, దానిని మనం ఉపయోగిస్తాము. ముందుగా, Google Chrome Storeలో Postmanను కనుగొని, ఇన్స్టాల్ చేయండి:

ఈ యుటిలిటీని ఉపయోగించి, మేము చెక్ పాయింట్ APIకి వెబ్ అభ్యర్థనలను రూపొందించగలుగుతాము. అన్ని API ఆదేశాలను గుర్తుంచుకోకుండా ఉండటానికి, ఇప్పటికే అవసరమైన అన్ని ఆదేశాలను కలిగి ఉన్న సేకరణలు (టెంప్లేట్లు) అని పిలవబడే వాటిని దిగుమతి చేయడం సాధ్యపడుతుంది:

మీరు కనుగొంటారు సేకరణ కోసం R80.10. దిగుమతి చేసిన తర్వాత, API కమాండ్ టెంప్లేట్లు మాకు అందుబాటులో ఉంటాయి:

నా అభిప్రాయం ప్రకారం, ఇది చాలా సౌకర్యవంతంగా ఉంటుంది. చెక్ పాయింట్ APIని ఉపయోగించి మీరు త్వరగా అప్లికేషన్లను అభివృద్ధి చేయడం ప్రారంభించవచ్చు.
చెక్ పాయింట్ + అన్సిబుల్
ఉందని కూడా గమనించదలిచాను చేసాడు చెక్పాయింట్ API కోసం. కాన్ఫిగరేషన్లను నిర్వహించడానికి మాడ్యూల్ మిమ్మల్ని అనుమతిస్తుంది, కానీ అన్యదేశ సమస్యలను పరిష్కరించడానికి ఇది చాలా సౌకర్యవంతంగా లేదు. ఏదైనా ప్రోగ్రామింగ్ భాషలో స్క్రిప్ట్లను వ్రాయడం మరింత సౌకర్యవంతమైన మరియు అనుకూలమైన పరిష్కారాలను అందిస్తుంది.
తీర్మానం
ఇక్కడే మేము చెక్ పాయింట్ API యొక్క చిన్న సమీక్షను పూర్తి చేస్తాము. నా అభిప్రాయం ప్రకారం, ఈ లక్షణం చాలా కాలంగా ఎదురుచూస్తున్నది మరియు అవసరమైనది. API యొక్క ఆవిర్భావం సిస్టమ్ అడ్మినిస్ట్రేటర్లు మరియు చెక్ పాయింట్ ఉత్పత్తులతో పనిచేసే సిస్టమ్ ఇంటిగ్రేటర్ల కోసం చాలా విస్తృత అవకాశాలను తెరుస్తుంది. ఆర్కెస్ట్రేషన్, ఆటోమేషన్, SIEM ఫీడ్బ్యాక్... ఇవన్నీ ఇప్పుడు సాధ్యమే.
PS గురించి మరిన్ని కథనాలు ఎప్పటిలాగే మీరు దీన్ని మా బ్లాగులో కనుగొనవచ్చు లేదా బ్లాగులో .
PSS చెక్ పాయింట్ని సెటప్ చేయడానికి సంబంధించిన సాంకేతిక ప్రశ్నల కోసం, మీరు చేయవచ్చు
నమోదు చేసుకున్న వినియోగదారులు మాత్రమే సర్వేలో పాల్గొనగలరు. దయచేసి.
మీరు APIని ఉపయోగించడానికి ప్లాన్ చేస్తున్నారా?
70,6%అవును 12
23,5%No4
5,9%ఇప్పటికే 1ని ఉపయోగిస్తున్నారు
17 మంది వినియోగదారులు ఓటు వేశారు. 3 వినియోగదారులు దూరంగా ఉన్నారు.
మూలం: www.habr.com
