2016-06-21 08:47:22 +00:00
|
|
|
General
|
|
|
|
################
|
|
|
|
|
2015-02-18 10:06:13 +00:00
|
|
|
Communications
|
|
|
|
===============
|
|
|
|
|
|
|
|
All the communication are done over HTTP using JSON.
|
|
|
|
|
2015-01-14 00:05:26 +00:00
|
|
|
Errors
|
|
|
|
======
|
|
|
|
|
|
|
|
In case of error a standard HTTP error is raise and you got a
|
|
|
|
JSON like that
|
|
|
|
|
|
|
|
.. code-block:: json
|
|
|
|
|
|
|
|
{
|
|
|
|
"status": 409,
|
|
|
|
"message": "Conflict"
|
|
|
|
}
|
2015-02-25 08:47:55 +00:00
|
|
|
|
2016-06-08 16:12:22 +00:00
|
|
|
409 error could be display to the user. They are normal behavior
|
|
|
|
they are used to warn user about something he should change and
|
|
|
|
they are not an internal software error.
|
|
|
|
|
|
|
|
|
2015-02-25 08:47:55 +00:00
|
|
|
Limitations
|
|
|
|
============
|
|
|
|
|
|
|
|
Concurrency
|
|
|
|
------------
|
|
|
|
|
2016-05-12 17:18:37 +00:00
|
|
|
A node can't process multiple request in the same time. But you can make
|
|
|
|
multiple request on multiple node. It's transparent for the client
|
|
|
|
when the first request on a Node start a lock is acquire for this node id
|
2015-02-25 08:47:55 +00:00
|
|
|
and released for the next request at the end. You can safely send all
|
|
|
|
the requests in the same time and let the server manage an efficent concurrency.
|
|
|
|
|
|
|
|
We think it can be a little slower for some operations, but it's remove a big
|
2016-05-12 17:18:37 +00:00
|
|
|
complexity for the client due to the fact only some command on some node can be
|
2015-02-25 08:47:55 +00:00
|
|
|
concurrent.
|
|
|
|
|
|
|
|
|
2016-03-25 16:35:55 +00:00
|
|
|
Authentication
|
2015-02-25 09:29:20 +00:00
|
|
|
-----------------
|
|
|
|
|
2016-04-18 18:55:22 +00:00
|
|
|
You can use HTTP basic auth to protect the access to the API. And run
|
|
|
|
the API over HTTPS.
|
2015-02-25 09:29:20 +00:00
|
|
|
|
|
|
|
|
2015-06-26 12:41:58 +00:00
|
|
|
Notifications
|
|
|
|
=============
|
|
|
|
|
2016-03-17 14:15:30 +00:00
|
|
|
You can receive notification from the server if you listen the HTTP stream /notifications or the websocket.
|
2015-06-26 12:41:58 +00:00
|
|
|
|
|
|
|
The available notification are:
|
2016-03-17 14:15:30 +00:00
|
|
|
* ping
|
2016-05-23 16:44:20 +00:00
|
|
|
* compute.created
|
|
|
|
* compute.updated
|
|
|
|
* compute.deleted
|
2016-05-12 17:18:37 +00:00
|
|
|
* node.created
|
|
|
|
* node.updated
|
|
|
|
* node.deleted
|
2016-05-18 16:37:18 +00:00
|
|
|
* link.created
|
|
|
|
* link.updated
|
|
|
|
* link.deleted
|
2016-06-21 07:49:16 +00:00
|
|
|
* shape.created
|
|
|
|
* shape.updated
|
|
|
|
* shape.deleted
|
2016-03-17 14:15:30 +00:00
|
|
|
* log.error
|
2016-03-18 15:55:54 +00:00
|
|
|
* log.warning
|
2016-04-18 19:15:24 +00:00
|
|
|
* log.info
|
2015-06-26 12:41:58 +00:00
|
|
|
|
2016-03-07 16:57:12 +00:00
|
|
|
Previous versions
|
|
|
|
=================
|
|
|
|
|
|
|
|
API version 1
|
|
|
|
-------------
|
2016-06-16 07:11:50 +00:00
|
|
|
Shipped with GNS3 1.3, 1.4 and 1.5.
|
|
|
|
This API doesn't support the controller system and save used a commit system instead of live save.
|
2016-03-07 16:57:12 +00:00
|
|
|
|