Meraki仪表板API
meraki-dashboard-api的Python项目详细描述
Meraki仪表板API
访问您的Cisco Meraki云是以一种Python式的方式管理的。也可通过PIP获得
先决条件
您需要在Meraki仪表板中启用API并获得一个APIkey:Instructions
示例
frommeraki_dashboard_apiimportDashboardapikey="jkhsfsdhk32424******example*****jlasdfsdfl3245345"dash=Dashboard(apikey)# list all organizationsmyOrgs=dash.organizations.list()print(myOrgs)# list all organization's networksmyNets=dash.organizations.networks(<orgId>)print(myNets)
因为其他可用的选项都是复杂的或老派的,所以我需要一种更加python和面向对象的方式。
90%的que api属于/networks端点,从那里可以看到一些组,在meraki文档中,这些组被表示为独立的,但大多数都属于同一个父端点。
oficial实现是一个简单的函数式编程(老派),我认为,guzmonne实现是返回另一个实例中的实例的一种非常复杂的方法。
示例:
response=meraki.organizations().index()json=response.json()
相反,我使用一些神奇的方法来按照严格的url模式实例化类。
示例:
client=dash.networks.clients.get(<networkId>,<clientId>)print(client)
我使用args构建url路径,使用kwargs传递每个端点的查询参数。
示例:
dev=dash.networks.devices.loss_and_latency(<networkId>,<serial>,uplink=‘wan1’,ip=‘1.2.3.4’,timespan=7200)print(dev)
对于post和put方法,可以使用kwargs数据或更新。
例如
payload={'name':'My AP','tags':'recently-added ','lat':37.4180951010362,'lng':-122.098531723022,'address':'some place','notes':'no notes','moveMapMarker':True}dev=dash.networks.devices.update(<networkId>,<serial>,update=payload)print(dev)