Northbound interface:RESTful
Line 46: | Line 46: | ||
* POST: Create a configuration entry into a collection | * POST: Create a configuration entry into a collection | ||
POST /users | POST /users | ||
− | <- Content : {"name":" | + | <- Content : {"name":"RogerFluffy","user_group":"nobody","pass":"xyz"} |
-> Code : HTTP/1.0 200 OK | -> Code : HTTP/1.0 200 OK | ||
* DELETE: Delete a configuration entry from a collection | * DELETE: Delete a configuration entry from a collection | ||
DELETE /users/someone | DELETE /users/someone | ||
-> Code : HTTP/1.0 200 OK | -> Code : HTTP/1.0 200 OK | ||
+ | ==== Entries ==== | ||
+ | Entries are found under collection paths. A collection is generally composed of multiple entries, with a different name for each entry. | ||
+ | The entry name must be provided during the *POST*: | ||
+ | POST /users | ||
+ | <- Content : { "name":"RogerFluffy", ... } | ||
+ | -> Code : HTTP/1.0 200 OK | ||
+ | When the collection is limited to one entry, the entry name is fixed. | ||
+ | For example, only one H.248 stack can be defined, therefore the name is fixed to ''gateway_h248'' | ||
+ | /configurations/MyCFG/h248_stacks/gateway_h248 | ||
+ | The entry name must be *NOT* be provided during the *POST*: | ||
+ | POST /configurations/MyCFG/h248_stacks | ||
+ | <- Content : { "enabled" : true, "naps" : [ "NAP_TDM", "RTP_NAP"], ... } | ||
+ | -> Code : HTTP/1.0 200 OK | ||
+ | |||
==== Collections ==== | ==== Collections ==== | ||
Paths with the plural form generally represent a collection of entries. | Paths with the plural form generally represent a collection of entries. | ||
For example, the path where users configuration entries are grouped into is | For example, the path where users configuration entries are grouped into is | ||
/users | /users | ||
− | + | Likewise, the list of routes can be found on | |
+ | /configurations/MyCFG/routes | ||
==== JSON status message ==== | ==== JSON status message ==== | ||
==== HTTP status code ==== | ==== HTTP status code ==== | ||
==== HTTP headers ==== | ==== HTTP headers ==== |
Revision as of 16:19, 18 November 2015
Contents |
RESTfull
In computing, Representational State Transfer (REST) is the software architectural style of the World Wide Web. REST gives a coordinated set of constraints to the design of components in a distributed hypermedia system that can lead to a higher-performing and more maintainable architecture.
To the extent that systems conform to the constraints of REST they can be called RESTful. RESTful systems typically, but not always, communicate over HTTP with the same HTTP verbs (GET, POST, PUT, DELETE, etc.) which web browsers use to retrieve web pages and to send data to remote servers.REST interfaces with external systems using resources identified by URI, for example /people/tom, which can be operated upon using standard verbs, such as DELETE /people/tom.
Reference: Wikipedia
TelcoBridges RESTfull Northbound Interface
As of Release 2.9, TelcoBridges gateways support a RESTful configuration interface using JSON for data exchange.
Supported RFCs
TelcoBridges supports the following RFCs for RESTful API:
Specification | Supported |
---|---|
RFC 7159 The JavaScript Object Notation (JSON) Data Interchange Format | Yes |
Extensible Markup Language (XML) 1.0 (Fifth Edition) | No |
RFC 2617 HTTP Authentication: Basic and Digest Access Authentication | Basic Scheme Only |
RFC 2109 HTTP State Management Mechanism | Yes |
API overview
Supported Methods
- GET : List collection entries, or Read a specific configuration entry
GET /users -> Code : HTTP/1.0 200 OK -> Content : {"root":{}} GET /users/root -> Code : HTTP/1.0 200 OK -> Content : {"name":"root","user_group":"Admin","pass":"Not Shown"}
- PUT : Update a configuration entry
PUT /users/root <- Content : {"pass":"MyNewSecret"} -> Code : HTTP/1.0 200 OK
- POST: Create a configuration entry into a collection
POST /users <- Content : {"name":"RogerFluffy","user_group":"nobody","pass":"xyz"} -> Code : HTTP/1.0 200 OK
- DELETE: Delete a configuration entry from a collection
DELETE /users/someone -> Code : HTTP/1.0 200 OK
Entries
Entries are found under collection paths. A collection is generally composed of multiple entries, with a different name for each entry. The entry name must be provided during the *POST*:
POST /users <- Content : { "name":"RogerFluffy", ... } -> Code : HTTP/1.0 200 OK
When the collection is limited to one entry, the entry name is fixed. For example, only one H.248 stack can be defined, therefore the name is fixed to gateway_h248
/configurations/MyCFG/h248_stacks/gateway_h248
The entry name must be *NOT* be provided during the *POST*:
POST /configurations/MyCFG/h248_stacks <- Content : { "enabled" : true, "naps" : [ "NAP_TDM", "RTP_NAP"], ... } -> Code : HTTP/1.0 200 OK
Collections
Paths with the plural form generally represent a collection of entries. For example, the path where users configuration entries are grouped into is
/users
Likewise, the list of routes can be found on
/configurations/MyCFG/routes