Sugar Network/API: Difference between revisions

mNo edit summary
Line 5: Line 5:
== Overview ==
== Overview ==


To better understand this API, see a technical explanation of its [[Platform_Team/Sugar_Network/Architecture#Conceptual_level|conceptual level]] and [[#Sugar Network resources|objects model]] in particular.
To better understand this API, see a technical explanation of its [[Platform_Team/Sugar_Network/Architecture#Conceptual_level|conceptual level]] and [[#Sugar_Network_resources|objects model]] in particular.


The API operates with [[Sugar Network]] [[#Sugar_Network_resources|resources]], which are collections of objects. All objects are identified by globally unique identifiers, GUIDs. Resources might support [[#Common_actions|common actions]]. While processing requests, the server might generate [[#Notifications|events]].
The API operates with [[Sugar Network]] [[#Sugar_Network_resources|resources]], which are collections of objects. All objects are identified by globally unique identifiers, GUIDs. Resources might support [[#Common_actions|common actions]]. While processing requests, the server might generate [[#Notifications|events]].
Line 16: Line 16:


* {{Code|SERVER}}, [[#API_servers|particular]] Sugar Network API server;
* {{Code|SERVER}}, [[#API_servers|particular]] Sugar Network API server;
* {{Code|RESOURCE}}, name one of the [[#Resources|existing]] resources;
* {{Code|RESOURCE}}, name one of the [[#Sugar_Network_resources|existing]] resources;
* {{Code|GUID}}, the {{Code|RESOURCE}}'s particular object;
* {{Code|GUID}}, the {{Code|RESOURCE}}'s particular object;
* {{Code|PROPERTY}}, particular property of {{Code|GUID}} object;
* {{Code|PROPERTY}}, particular property of {{Code|GUID}} object;
Line 143: Line 143:
=== Aggregated properties ===
=== Aggregated properties ===


[[Sugar_Network/Resources#Property_types|Aggregated]] properties have special API to treat their content.
[[#resource-types|Aggregated]] properties have special API to treat their content.


<div id="POST-aggproperty"></div>
<div id="POST-aggproperty"></div>
Line 165: Line 165:
=== Download releases ===
=== Download releases ===


To easy download Context [[Sugar_Network/Resources#context-releases|releases]] and avoid reading raw ''Context.releases'' property, there are special high-level API commands.
To easy download Context [[#context-releases|releases]] and avoid reading raw ''Context.releases'' property, there are special high-level API commands.


<div id="GET-solve"></div>
<div id="GET-solve"></div>
Line 181: Line 181:
The resulting info is a JSON object with keys equal to Context guids and value objects for chosen release with the following keys:
The resulting info is a JSON object with keys equal to Context guids and value objects for chosen release with the following keys:


* {{Code|blob}}, bundle [[Sugar_Network/Resources#Property_types|digest]] to download;
* {{Code|blob}}, bundle [[#resource-types|digest]] to download;
* {{Code|version}}, chosen version number;
* {{Code|version}}, chosen version number;
* {{Code|title}}, the ''Context.title'' value;
* {{Code|title}}, the ''Context.title'' value;
Line 194: Line 194:
=== Upload releases ===
=== Upload releases ===


To easy upload Context [[Sugar_Network/Resources#context-releases|releases]] and avoid writing to raw ''Context.releases'' property, there is a special high-level API command.
To easy upload Context [[#context-releases|releases]] and avoid writing to raw ''Context.releases'' property, there is a special high-level API command.


  '''POST''' /context?cmd='''submit'''[&''PROP''=''VALUE''][&initial]
  '''POST''' /context?cmd='''submit'''[&''PROP''=''VALUE''][&initial]