mirror of
https://github.com/librenms/librenms.git
synced 2024-10-07 16:52:45 +00:00
Tidy API entry points & doc; error if something other than image/png is asked for from portgroup graphs
This commit is contained in:
@@ -29,20 +29,20 @@ $app->setName('api');
|
||||
|
||||
$app->group('/api', function() use ($app) {
|
||||
$app->group('/v0', function() use ($app) {
|
||||
$app->get('/bgp', 'authToken', 'list_bgp')->name('list_bgp');//api/v0/bgp
|
||||
$app->group('/devices', function() use ($app) {
|
||||
$app->delete('/:hostname', 'authToken', 'del_device')->name('del_device');//api/v0/devices/$hostname
|
||||
$app->get('/:hostname', 'authToken', 'get_device')->name('get_device');//api/v0/devices/$hostname
|
||||
$app->get('/:hostname/vlans', 'authToken', 'get_vlans')->name('get_vlans');//api/v0/devices/$hostname/vlans
|
||||
$app->get('/:hostname/:type', 'authToken', 'get_graph_generic_by_hostname')->name('get_graph_generic_by_hostname');//api/v0/devices/$hostname/$type
|
||||
$app->get('/:hostname/ports/:ifname', 'authToken', 'get_port_stats_by_port_hostname')->name('get_port_stats_by_port_hostname');//api/v0/devices/$hostname/ports/$ifName
|
||||
$app->get('/:hostname/ports/:ifname/:type', 'authToken', 'get_graph_by_port_hostname')->name('get_graph_by_port_hostname');//api/v0/devices/$hostname/ports/$ifName/$type
|
||||
});
|
||||
$app->group('/graphs', function() use ($app) {
|
||||
$app->get('/ports/:group', 'authToken', 'get_graph_by_group')->name('get_graph_by_group');//api/v0/graphs/ports/$group
|
||||
});
|
||||
$app->get('/devices', 'authToken', 'list_devices')->name('list_devices');//api/v0/devices
|
||||
$app->post('/devices', 'authToken', 'add_device')->name('add_device');//api/v0/devices (json data needs to be passed)
|
||||
$app->delete('/devices/:hostname', 'authToken', 'del_device')->name('del_device');//api/v0/devices (json data needs to be passed)
|
||||
$app->get('/bgp', 'authToken', 'list_bgp')->name('list_bgp');//api/v0/bpg
|
||||
$app->group('/portgroups', function() use ($app) {
|
||||
$app->get('/:group', 'authToken', 'get_graph_by_portgroup')->name('get_graph_by_portgroup');//api/v0/portgroups/$group
|
||||
});
|
||||
});
|
||||
$app->get('/v0', 'authToken', 'show_endpoints');//api/v0
|
||||
});
|
||||
|
@@ -377,9 +377,16 @@ function list_bgp() {
|
||||
echo _json_encode($output);
|
||||
}
|
||||
|
||||
function get_graph_by_group() {
|
||||
function get_graph_by_portgroup() {
|
||||
global $config;
|
||||
$app = \Slim\Slim::getInstance();
|
||||
if ($app->request->getMediaType() != "image/png") {
|
||||
// we only support PNG graphs at the moment
|
||||
$app->response->setStatus(406); // Not Acceptable
|
||||
echo("<h3>Not Acceptable</h3>\n");
|
||||
echo("<p>Only media type 'image/png' is provided at present</p>\n");
|
||||
return;
|
||||
}
|
||||
$router = $app->router()->getCurrentRoute()->getParams();
|
||||
$group = $router['group'];
|
||||
$vars = array();
|
||||
|
@@ -157,14 +157,14 @@ if ($_SESSION['userlevel'] == '10')
|
||||
<tr>
|
||||
<td colspan="5"><code>curl -H "Content-Type: application/json" -H "X-Auth-Token: 91c60e737e342c205be5bba8e2954d27" \<br/> "https://librenms.example.com/api/v0/devices/localhost/ports/eth0"</code></td>
|
||||
</tr>
|
||||
<a name="graphs_group"></a>
|
||||
<a name="graphs_portgroup"></a>
|
||||
<tr class="success">
|
||||
<td colspan="5"><strong>Graphs by group</strong></td>
|
||||
<td colspan="5"><strong>Graphs by portgroup</strong></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>/api</td>
|
||||
<td>/v0</td>
|
||||
<td>/graphs/ports/$group</td>
|
||||
<td>/portgroups/$group</td>
|
||||
<td>
|
||||
<ul class="list-unstyled">
|
||||
<li>$group = transit,peering,core (or multiple separated by comma)</li>
|
||||
@@ -176,14 +176,14 @@ if ($_SESSION['userlevel'] == '10')
|
||||
</ul>
|
||||
</td>
|
||||
<td>
|
||||
JSON
|
||||
image/png
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="5"><code>curl -H "Content-Type: application/json" -H "X-Auth-Token: 91c60e737e342c205be5bba8e2954d27" \<br/> "https://librenms.example.com/api/v0/graphs/ports/peering"</code></td>
|
||||
<td colspan="5"><code>curl -H "Content-Type: image/png" -H "X-Auth-Token: 91c60e737e342c205be5bba8e2954d27" \<br/> "https://librenms.example.com/api/v0/portgroups/peering"</code></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="5"><code>curl -H "Content-Type: application/json" -H "X-Auth-Token: 91c60e737e342c205be5bba8e2954d27" \<br/> "https://librenms.example.com/api/v0/graphs/ports/peering,transit?width=1024&height=768&from=1405457456&to=1405543856&legend=no"</code></td>
|
||||
<td colspan="5"><code>curl -H "Content-Type: image/png" -H "X-Auth-Token: 91c60e737e342c205be5bba8e2954d27" \<br/> "https://librenms.example.com/api/v0/portgroups/peering,transit?width=1024&height=768&from=1405457456&to=1405543856&legend=no"</code></td>
|
||||
</tr>
|
||||
<a name="list"></a>
|
||||
<tr class="success">
|
||||
|
Reference in New Issue
Block a user