184
edits
(+ Channel tags) |
|||
| Line 11: | Line 11: | ||
== Services == | == Services == | ||
Services may requested by selector. A service selector is an object with the following fields: | Services may requested by selector. A service selector is an object with the following fields: | ||
| Line 19: | Line 19: | ||
* (optional) object or array of objects `setters` (see SetterSelector): accept only services with channels matching all the selectors in this array. | * (optional) object or array of objects `setters` (see SetterSelector): accept only services with channels matching all the selectors in this array. | ||
Generally, except for (de)assigning tags, '''using an id is considered a bad idea''', as this ties the application to a specific device, and this will fail if the device is replaced (consider that this is equivalent to using an IP address instead of a domain name). | |||
=== List of Services === | |||
Example with 1 selector: | Example with 1 selector: | ||
| Line 35: | Line 36: | ||
* Get all services: | * Get all services: | ||
** GET http://localhost:3000/api/v1/services | ** GET http://localhost:3000/api/v1/services | ||
== Tags == | |||
* Assign Tags to a service | |||
** POST http://localhost:3000/api/v1/services/tags {"services": selector(s), "tags": tag(s)} | |||
* Remove Tags of a service | |||
** DELETE http://localhost:3000/api/v1/services/tags {"services": selector(s), "tags": tag(s)} | |||
* Example | |||
** POST http://localhost:3000/api/v1/services/tags {"services":[{"id":"thinkerbell-root-service"}],"tags":["Living Room"] } | |||
== Channels == | == Channels == | ||
| Line 50: | Line 62: | ||
While each field is optional, at least one field must be provided. | While each field is optional, at least one field must be provided. | ||
Generally, '''using an id is considered a bad idea''', as this ties the application to a specific device, and this will fail if the device is replaced (consider that this is equivalent to using an IP address instead of a domain name). | Generally, except for (de)assigning tags, '''using an id is considered a bad idea''', as this ties the application to a specific device, and this will fail if the device is replaced (consider that this is equivalent to using an IP address instead of a domain name). | ||
| Line 73: | Line 85: | ||
See http://fxbox.github.io/taxonomy/doc/foxbox_taxonomy/values/enum.Value.html for the full documentation on values. | See http://fxbox.github.io/taxonomy/doc/foxbox_taxonomy/values/enum.Value.html for the full documentation on values. | ||
=== Tags === | |||
* Assign Tags to a channel | |||
** POST http://localhost:3000/api/v1/channels/getter/tags {"getter": selector(s), "tags": tag(s)} | |||
** POST http://localhost:3000/api/v1/channels/setter/tags {"setter": selector(s), "tags": tag(s)} | |||
* Remove Tags of a channel | |||
** DELETE http://localhost:3000/api/v1/channels/getter/tags {"getter": selector(s), "tags": tag(s)} | |||
** DELETE http://localhost:3000/api/v1/channels/setter/tags {"setter": selector(s), "tags": tag(s)} | |||
= Specific services and channels = | = Specific services and channels = | ||
| Line 89: | Line 112: | ||
** POST http://localhost:3000/api/v1/services {"setters":[{"kind":{"adapter":"Adapter","kind":"snapshot","type": "Json", "vendor":"DLink"} }]} | ** POST http://localhost:3000/api/v1/services {"setters":[{"kind":{"adapter":"Adapter","kind":"snapshot","type": "Json", "vendor":"DLink"} }]} | ||
== Recipe == | == Recipe == | ||
* Send Recipe | * Send Recipe | ||
edits