Code42 API语法和用法
这篇文章是给谁看的?
老师,不。
Incydr Professional, Enterprise, Horizon和Gov F2,是的。
Incydr基础,高级,和Gov F1,没有。
概述
Code42 API是一个强大的工具,用于获得特定的见解或对Code42环境的所有部分采取编程操作。本文描述了Code42 API的语法以及如何编写命令。
本文中的示例使用命令行工具旋度
与Code42 API交互。有关可用于与API交互的工具列表,请参见与Code42 API交互的工具.
此外,本文中的示例使用资源https://console.us.code42.com,但您使用的资源取决于您的Code42云主机地址:
注意事项
Code42 API文档在Code42开发者门户.无需登录就可以在浏览器中看到它。但是API资源本身只在以下条件下工作:
- 你有一个产品计划包括对Code42 API的访问。
- 您的凭证依赖于本地身份验证。SSO或者通过任何第三方提供者进行身份验证将不起作用。
- 你的角色提供权限来访问给定API资源所需的数据。例如,如果您没有在Code42控制台中更改设备设置的权限,那么您就没有使用API更改设备设置的权限。
如果你的API调用失败了,因为你没有权限使用它们,你会看到这样的回复消息:
- HTTP 401未经授权
- 无法验证用户身份
- 您的Code42产品计划不允许使用Code42 API。
Code42 API语法
通过向Code42云发送HTTP请求来使用Code42 API。在请求中,指定定义请求的路径、资源和参数。
示例命令
curl -X GET 'https://console.us.code42.com/api/v1/User?q=eg@ex.com&active=true' -H '授权:持有者< auth_token >
' curl -X POST 'https://console.us.code42.com/api/v3/ping/error' -H '授权:持有者< auth_token >
' curl -X GET 'https://console.us.code42.com/api/v4/role/view' -H '授权:持有者< auth_token >
'
示例命令说明
HTTP 方法 |
协议:/ / 宿主 :端口 |
基地 路径 |
API 资源 |
查询参数 |
---|---|---|---|---|
得到 | https://console.us.code42.com | / api / v1 | 用户 | ? q = eg@ex.com 活泼= true |
帖子 | https://console.us.code42.com | / api / v3 / | ping /错误 | |
得到 | https://console.us.code42.com | / api / v4 / | 角色/视图 |
HTTP方法
- GET:检索资源。
- POST:创建新资源。
- PUT:更新现有资源。
- DELETE:删除已有资源。
协议、主机、端口
上的API资源可用Code42开发者门户.
API参考资料
这些资源提供了关于Code42平台的各种组件的信息。例如:
- 的
电脑
资源提供对用户设备的访问。 - 的
Org
资源提供对组织的访问。 - 的
用户
资源为用户提供访问权限。
有关Code42 API资源的列表,请参见Code42 API文档在开发者门户网站。
参数
参数进一步指定方法和资源的操作。的API文档描述给定方法和资源的参数。
- 查询参数位于url的末尾,以问号开头,并以&符号分隔:复制!
curl -X GET 'https://console.us.code42.com/api/v1/User?q=joe@acme.com&active=true' -H '授权:持有人
' 复制!curl -X GET 'https://console.us.code42.com/api/v1/User/123?idType=uid' -H '授权:持有者
' - 请求体参数(POST和PUT请求的常见参数)作为JSON数据在HTTP请求体中传递。指定内容类型
application / json
(在curl命令中,- d
身体数据)。复制!curl -X POST -d '{"cbetway88helpompany": "Test1", "email": "test@test.com", "customerId": "123", "firstname": "test", "lastname": "test"}' -H 'Content-Type: application/json' 'https://console.us.code42.com/api/v1/user' -H '授权:持有人
' '
返回值
一些API请求只是返回一个HTTP响应代码:例如,200表示成功。其他请求也会返回JSON数据.
- 返回值可以是一个资源或一组资源。
- 为了使输出更具可读性,将其输送到Python JSON解码器。为此,将以下内容添加到
旋度
命令:| python3 -mjson.tool
单个返回值
在主URL上指定ID的GET请求将返回一个资源。例如:
curl -X GET -i 'https://console.us.code42.com/api/v1/User/123' -H '授权:持有人' | python3 -mjson.tool
返回ID为“123”的用户:
{"metadata":{"timestamp":"2013-08-27T14:05:44.733-05:00",< "params":{}}, "data":{"userId":123, "userUid":"c6ec2d26ce3805c1", "status":"Active":" username":"joe@acme.com", "email":"joe@acme.com", "firstName":"Joe", "lastName":"Jones", "orgId":42, "orgName":"Finance", "Active":true, "blocked":false, "orgType":"CONSUMER", "creationDate":"2007-01-07T18:00:13.273-06:00", "modificationDate":"2013-05-13T13:40:52.279-05:00"}}
请注意,帖子请求通常返回使用生成的ID创建的资源。
多个返回值
带有查询参数的GET请求返回一个资源数组。例如:
curl -X GET 'https://console.us.code42.com/api/v1/User?active=true&pgNum=1&pgSize=2' -H '授权:holder' | python3 -mjson.tool
返回一个活动用户数组:
{"metadata":{"timestamp":"2013-08-27T14:05:44.733-05:00", "params":{}}, "data": {totalCount:5432, users: [{"userId":123, "userUid":"c6ec2d26ce3805c1", "status":"Active", "username":"joe@acme.com", "email":"joe@acme.com",…“标识”(切断)},{:456年,“userUid”:“f1ad1da8b74328bz”,“状态”:“活跃”,“用户名”:“jim@slim.com”、“电子邮件”:“jim@slim.com”……[剪切]},]}}
请求设备信息的示例
本节使用的示例旋度
与电脑
API的资源。
输入
下面的命令列出了Code42环境中的设备:
curl -X GET -k "https://console.us.code42.com/api/v1/Computer" -H '授权:承载' | python3 -mjson.tool . zip
命令元素 | 描述 |
---|---|
旋度 |
调用curl命令。 |
- x得到 |
将方法设置为GET。 |
- k |
忽略与自签名证书betway365相关的安全错误。参考旋度手册页获取详细信息。 |
http://console.us.code42.com |
Code42云的网站协议和主机 |
/ api / v # |
Code42云上API资源的网络位置,所有API请求都需要。 |
/计算机 |
您希望使用的特定API资源。API资源的完整列表可在Code42开发者门户. |
< auth_token > |
的身份验证令牌为您的要求。所有Code42 API请求都必须经过身份验证。 |
| python3 -mjson.tool |
通过将输出发送给Python json解码器,使输出更具可读性。 |
输出
输出包含由Python json.tool格式化的请求信息:
{“数据”:{“电脑”:[{“活跃”:假的,“地址”:“192.168.95.128:4242”、“alertState”:0,“alertStates”:“OK”,“封锁”:假的,“buildVersion”:空,“computerId”:13日,“创建日期”:“2015 - 03 - 18 - t16:39:04.241凌晨”、“guid”:“681099810721783680”,“javaVersion”:“1.7.0_45”、“lastConnected”:“2015 - 03 - 18 - t16:42:55.482凌晨”、“loginDate”:“2015 - 03 - 18 - t16:39:07.570凌晨”、“modelInfo”:空,“modificationDate”:“2015 - 03 - 18 - t16:42:55.482 -凌晨5”,“名字”:“WIN-FQNN6BGK47K”、“orgId”:2、"osArch": "amd64", "osName": "win", "osVersion": "6.2", "parentComputerId": null, "productVersion": "3.7.0", "remoteAddress": "172.16.239.1", "service": "Code42", "status": "去激活","timeZone": "America/Chicago", "type": "COMPUTER", "userId": 2, "version": " 1388728800370}, {"active": true, "address": "192.168.95.128:4252", "alertState": 0, "alertStates": ["OK"], "blocked": false, "buildVersion": 31, "computerId": 12, "creationDate": "2015-03-12T11:53:40.861-05:00", "guid":“680201360538886016”,“javaVersion”:null,“lastConnected”:“2015-03-12T17:17:23.909-05:00”,“loginDate”:“2015-03-12T16:23:12.272-05:00”,“modelInfo”:null,“modificationDate”:“2015-03-12T17:17:23.909-05:00”,“name”:“win - fqnn6bgk47k”,“orgId”:2,“osArch”:null,“osName”:“win”,“osVersion”:“6.2.9200.0”,“parentComputerId”:null,“productVersion”:“3.7.0”,“remoteAddress”:“172.16.239.1”,“service”:“Code42”,“status”:“Active”,“timeZone”:null,“type”:“COMPUTER”,“userId”:2,“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“version”:“type”:“COMPUTER”,“userId”:2,“version”:“version”:“version”:“版本”:1413349200416}]}, "metadata": {"params": {}, "timestamp": "2015-03-23T16:57:19.687-05:00"}}
添加如下所述的参数可以改进这个初始请求。
添加参数
每个API资源都包含附加参数,可用于搜索特定数据、过滤和排序结果,或指定其他附加选项。每个资源的参数都不相同,因此使用API文档查看所使用的每个资源的可用选项。
为了提高电脑
请求以上,添加参数和指定值,以定制您的结果。类中可用的参数的一小部分,示例如下电脑
资源。
例子的参数 | API文档 | 描述 |
---|---|---|
srtKey |
排序键 | 对象的结果进行排序电脑 请求的几个值之一,如计算机的的名字 或lastCompletedBackup . |
srtDir |
排序方向 | 排序结果按升序或降序进行。 |
pgSize |
返回的最大对象数 | 指定结果的最大数目。 |
活跃的 |
可选筛选器,只显示活动或未激活的对象 | 允许请求只响应激活或未激活的计算机。 |
出口 |
选项指定导出 | 指示电脑 请求以导出格式返回结果,例如逗号分隔值(CSV)文件。 |
可以将参数附加到旋度
的后面添加一个或多个参数及其值?
如下图所示。
例1:根据最近的连接进行排序
如果希望查看最近连接到Code42环境的计算机是哪些,则可以对电脑
API请求。该命令对电脑
结果由计算机最后连接到Code42云实例:
curl -X GET -k "https://console.us.code42.com/api/v1/Computer?srtKey=lastConnected" -H '授权:承载' | python3 -mjson.tool . zip
例2:导出到CSV
如果希望查看更可读的信息格式,或存储报告以随时间查看Code42环境中的信息,则可以导出电脑
请求到CSV文件。该命令将结果导出为CSV格式:
curl -X GET -k "https://console.us.code42.com/api/v1/Computer?export=csv" -H '授权:承载' | python3 -mjson.tool . zip
例3:排序并导出到CSV
将多个参数合并为一个参数旋度
命令,使用&
的性格。该命令对电脑
并以CSV格式导出结果:
curl -X GET -k "https://console.us.code42.com/api/v1/Computer?srtKey=lastConnected&export=csv" -H '授权:承载' | python3 -mjson.tool . zip
计算机资源的用例
通过组合Code42 API的可用资源、方法和参数,您可以为Code42环境的特定需求创建解决方案。这些示例展示了仅使用电脑
资源。
报告所有设备
Code42 API可以帮助您定期收集关于Code42环境的信息,以便以后在报告和统计中使用。这个请求将所有设备的列表导出为CSV:
curl -X GET -k "https://console.us.code42.com/api/v1/Computer?srtKey=name&srtDir=asc&targetComputerGuid=rollup&incBackupUsage=true&incActivity=true&incCounts=true&active=true&alerted=false&obeyQueryLimit=true&export=csv" -H '授权:承载' | python3 -mjson.tool . zip
事实上,这旋度
命令使用与您选择时Code42控制台使用的相同的API请求设备>操作菜单>导出全部.有关如何将Code42控制台操作转换为旋度
命令,请参阅Code42 API工具篇文章。
识别非活动设备
您的Code42环境中可能有一些设备在一段时间内没有连接到Code42云,这可能是由于关闭了电源。此请求将创建Code42环境中计算机的CSV,从那些在最长时间内未连接到Code42环境的计算机开始:
curl -X GET -k "https://console.us.code42.com/api/v1/Computer?srtKey=lastConnected&active=true&export=csv" -H '授权:承载' | python3 -mjson.tool . zip
确定最大的设备备份
确定备份最多信息的设备可以帮助您更有效地管理存储。该请求列出了备份数据最多的10个设备:
curl -X GET -k "https://console.us.code42.com/api/v1/Computer?srtKey=archiveBytes&srtDir=DESC&pgSize=10&pagNum=1&active=true" -H '授权:承载' | python3 -mjson.tool . zip
为了使该命令在命令行上更容易阅读,可以使用Python JSON解码器处理输出,并使用命令行工具(如grep:
curl -X GET -k "https://console.us.code42.com/api/v1/Computer?srtKey=archiveBytes&srtDir=DESC&pgSize=10&pagNum=1&active=true" -H '授权:承载' | python3 -mjson.tool . zip| grep -w name
接下来是什么
的电脑
resource只是Code42 API中的众多资源之一。在你理解了本介绍中的例子之后,继续探索Code42 API:
- 检查API文档了解其他可用的资源。
- 检查我们的GitHub仓库获取我们发布的用于任何Code42环境的信息和脚本。