Added sdk-outline.md with possible outline for Client SDK docs. (cherry picked from commit 02fe92936766f35fa23bd6b97c6f7c743710d253)
Project: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/commit/780e3f2f Tree: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/tree/780e3f2f Diff: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/diff/780e3f2f Branch: refs/heads/two-dot-o-dev Commit: 780e3f2f6312bf8496062d315461dc0d6b90ab54 Parents: 16306f4 Author: Dave Johnson <snoopd...@apache.org> Authored: Fri Aug 7 13:50:11 2015 -0400 Committer: Dave Johnson <snoopd...@apache.org> Committed: Wed Aug 12 13:02:47 2015 -0400 ---------------------------------------------------------------------- docs/sdks/ios-new.md | 982 +++++++++++++++++++++++++++++++++++ docs/sdks/java.md | 1 - docs/sdks/javascript.md | 3 - docs/sdks/sdk-outline.md | 111 ++++ docs/sdks/usage.md | 16 - sdks/android/README.md | 3 +- sdks/html5-javascript/README.md | 2 + sdks/ios/README.md | 3 +- sdks/nodejs/readme.md | 2 + sdks/ruby/README.md | 2 +- 10 files changed, 1101 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/780e3f2f/docs/sdks/ios-new.md ---------------------------------------------------------------------- diff --git a/docs/sdks/ios-new.md b/docs/sdks/ios-new.md new file mode 100644 index 0000000..0f5b3fe --- /dev/null +++ b/docs/sdks/ios-new.md @@ -0,0 +1,982 @@ +# Usergrid iOS SDK + +## Getting Started + +### Installing the SDK +### Building from Source + +# Usergrid SDK Reference with Examples + +The 66 topics listed below are each documented in the Usergrid documentation and +for each the docs provide an API reference and example for each of these clients: +curl, iOS, Android, JavaScript, Ruby and Node.js. + +## Working with Collections + +### 1. Creating collections + +SDK Method + + (ApigeeClientResponse *)apiRequest: (NSString *)url operation:(NSString *)op data:(NSString *)opData + +Parameters + +Parameter Description +--------- ----------- +url A fully-formed url in the following format: https://api.usergrid.com/<org>/<app>/<collection> +op The HTTP method - in this case, 'POST' +opData No data is being sent, so the value is nil + +Example Request/Response + +Request: + + -(NSString*)createCollection { + + NSString *url = @"https://api.usergrid.com/your-org/your-app/items"; + NSString *op = @"POST"; + NSString *opData = nil; + + //we recommend you call ApigeeClient from your AppDelegate. + //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios + //create an instance of AppDelegate + AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate]; + + //call createEntity to initiate the API call + ApigeeClientResponse *response = [appDelegate.dataClient apiRequest: url operation: op data: opData]; + + @try { + //success + } + @catch (NSException * e) { + //fail + } + + } + +Response: + + { + "action" : "post", + "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0", + "params" : { }, + "path" : "/items", + "uri" : "http://api.usergrid.com/your-org/your-app/items", + "entities" : [ ], + "timestamp" : 1378857079220, + "duration" : 31, + "organization" : "your-org", + "applicationName" : "your-app" + } + +### 2. Retrieving collections + +SDK Method + + (ApigeeCollection*)getCollection:(NSString*)type + +Parameters + +Parameter Description +--------- ----------- +type The entity type associated with the collection to be retrieved + +Example Request/Response + +Request: + + -(NSString*)getCollection { + + //specify the entity type that corresponds to the collection to be retrieved + NSString *type = @"item"; + + //we recommend you call ApigeeClient from your AppDelegate. + //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios + + //create an instance of AppDelegate + AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate]; + + //Call getCollection: to initiate the API GET request + ApigeeCollection *collection = [appDelegate.dataClient getCollection:@"book"]; + } + +Response: + + { + "action" : "get", + "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0", + "params" : { }, + "path" : "/items", + "uri" : "http://api.usergrid.com/your-org/your-app/items", + "entities" : [ { + "uuid" : "5bb76bca-1657-11e3-903f-9ff6c621a7a4", + "type" : "item", + "name" : "milk", + "created" : 1378405020796, + "modified" : 1378405020796, + "metadata" : { + "path" : "/items/5bb76bca-1657-11e3-903f-9ff6c621a7a4" + }, + "name" : "milk", + "price" : "3.25" + }, { + "uuid" : "1a9356ba-1682-11e3-a72a-81581bbaf055", + "type" : "item", + "name" : "bread", + "created" : 1378423379867, + "modified" : 1378423379867, + "metadata" : { + "path" : "/items/1a9356ba-1682-11e3-a72a-81581bbaf055" + }, + "name" : "bread", + "price" : "2.50" + } ], + "timestamp" : 1378426821261, + "duration" : 35, + "organization" : "your-org", + "applicationName" : "your-app", + "count" : 2 + } + +### 3. Updating collections + +SDK Method +(ApigeeClientResponse *)apiRequest: (NSString *)url operation:(NSString *)op data:(NSString *)opData +Properties +Parameter Description +url A fully-formed request url in the following format: +https://api.usergrid.com/<org>/<app>/<collection>/?ql= +Note that you must include an empty '?ql=' query string at the end of the URL + +op The HTTP method - in this case, 'PUT' +opData A JSON-formatted string that contains the entity properties to be updated +Example Request/Response +Show Code +Request: +-(NSString*)updateCollection { + + NSString *url = @"https://api.usergrid.com/your-org/your-app/items/?ql"; + NSString *op = @"PUT"; + NSString *opData = @"{\"availability\":\"in-stock\"}"; //we escape the quotes + + //we recommend you call ApigeeClient from your AppDelegate. + //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios + //create an instance of AppDelegate + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + + //call apiRequest to initiate the API call + ApigeeClientResponse *response = [appDelegate.dataClient apiRequest: url operation: op data: opData]; + + @try { + //success + } + @catch (NSException * e) { + //fail + } + +} + +Response: +{ + "action" : "put", + "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0", + "params" : { + "ql" : [ "" ] + }, + "path" : "/items", + "uri" : "http://api.usergrid.com/your-org/your-app/items", + "entities" : [ { + "uuid" : "31847b9a-1a62-11e3-be04-8d05e96f700d", + "type" : "item", + "name" : "milk", + "price" : "3.25", + "availability" : "in-stock" + "created" : 1378849479113, + "modified" : 1378849567301, + "name" : "milk", + }, { + "uuid" : "3192ac6a-1a62-11e3-a24f-496ca1d42ce7", + "type" : "item", + "name" : "bread", + "price" : "4.00", + "availability" : "in-stock" + "created" : 1378849479206, + "modified" : 1378849567351, + "name" : "bread", + } ], + "timestamp" : 1378849567280, + "duration" : 207, + "organization" : "your-org", + "applicationName" : "your-app" +} + +### 4. Deleting collections + +SDK Method +(ApigeeClientResponse *)apiRequest: (NSString *)url operation:(NSString *)op data:(NSString *)opData +Properties +Parameter Description +url A fully-formed url in the following format: +https://api.usergrid.com/<org>/<app>/<collection>/?ql= +Note that you must include an empty '?ql=' query string at the end of the URL + +op The HTTP method - in this case, 'DELETE' +opData No data is being sent, so the value is nil +Example Request/Response +The following example will delete the first 5 entities in a collection. + +Show Code +Request: +-(NSString*)deleteCollection { + + NSString *url = @"https://api.usergrid.com/your-org/your-app/items/?ql='limit=5'"; + NSString *op = @"DELETE"; + NSString *opData = nil; + + //we recommend you call ApigeeClient from your AppDelegate. + //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios + //create an instance of AppDelegate + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + + //call createEntity to initiate the API call + ApigeeClientResponse *response = [appDelegate.dataClient apiRequest: url operation: op data: opData]; + + @try { + //success + } + @catch (NSException * e) { + //fail + } + +} + +Response: +{ + "action" : "delete", + "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0", + "params" : { + "ql" : [ "" ] + }, + "path" : "/items", + "uri" : "http://api.usergrid.com/your-org/your-app/items", + "entities" : [ { + "uuid" : "53fe3700-0abe-11e3-b1f7-1bd100b8059e", + "type" : "item", + "name" : "milk", + "price" : "3.25", + "created" : 1377129832047, + "modified" : 1377129832047, + "metadata" : { + "path" : "/items/53fe3700-0abe-11e3-b1f7-1bd100b8059e" + }, + "name" : "milk" + }, { + "uuid" : "5ae1fa7a-0abe-11e3-89ab-6be0003c809b", + "type" : "item", + "name" : "bread", + "price" : "4.00", + "created" : 1377129843607, + "modified" : 1377129843607, + "metadata" : { + "path" : "/items/5ae1fa7a-0abe-11e3-89ab-6be0003c809b" + }, + "name" : "bread" + } ], + "timestamp" : 1378848117272, + "duration" : 12275, + "organization" : "your-org", + "applicationName" : "your-app" +} + +## Working with Entities + +### 5. Creating a custom entity + +SDK Method +(ApigeeClientResponse *)createEntity:(NSDictionary *)newEntity +Parameters +Parameter Description +newEntity NSDictionary object that contains the entity properties +Example Request/Response +Show Code +Request: +-(NSString*)newEntity { + + //create an entity object + NSMutableDictionary *entity = [[NSMutableDictionary alloc] init ]; + + //Set entity properties + [entity setObject:@"item" forKey:@"type"]; //Required. New entity type to create + [entity setObject:@"milk" forKey:@"name"]; + [entity setObject:@"3.25" forKey:@"price"]; + + //we recommend you call ApigeeClient from your AppDelegate. + //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios + //create an instance of AppDelegate + AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate]; + + //call createEntity to initiate the API call + ApigeeClientResponse *response = [appDelegate.dataClient createEntity:entity]; + + @try { + //success + } + @catch (NSException * e) { + //fail + } + +} + +Response: + { + "action" : "post", + "application" : "4a1edb70-d7a8-11e2-9ce3-f315e5aa568a", + "params" : { }, + "path" : "/items", "uri" : "http://api.usergrid.com/my-org/my-app/items", + "entities" : [ { + "uuid" : "83e9b7ea-e8f5-11e2-84df-e94123890c7a", + "type" : "item", + "name" : "milk", + "created" : 1373415195230, + "modified" : 1373415195230, + "metadata" : { + + "path" : "/items/83e9b7ea-e8f5-11e2-84df-e94123890c7a" + }, + "name" : "milk", + "price" : "3.25" + } ], + "timestamp" : 1373415195225, + "duration" : 635, + "organization" : "my-org", + "applicationName" : "my-app" + } + + +### 6. Creating multiple custom entities + +Request Syntax +curl -X POST https://api.usergrid.com/<org>/<app>/<entity_type>/ -d '[{<entity>}, {<entity>}, ...]' +Parameters +Parameter Description +org Organization UUID or name +app Application UUID or name +entity_type Custom entity type to create. API Services will create a corresponding collection if one does not already exist. To add an entity to an existing collections, use the collection name or colleciton UUID in place of the entity type. +entity Comma-separated list of entity objects to create. Each object should be formatted as a comma-separated list of entity properties, formatted as key-value pairs in the format <property>:<value> +Example Request/Response +Show Code +Request: +curl -X POST "https://api.usergrid.com/your-org/your-app/item" -d '[{"name":"milk", "price":"3.25"}, {"name":"bread", "price":"2.50"}]' +Response: +{ + "action" : "post", + "application" : "f34f4222-a166-11e2-a7f7-02e9sjwsf3d0", + "params" : { }, + "path" : "/items", + "uri" : "http://api.usergrid.com/your-org/your-app/items", + "entities" : [ { + "uuid" : "f3a8061a-ef0b-11e2-9e92-5f4a65c16193", + "type" : "item", + "name" : "milk", + "price" : "3.25", + "created" : 1374084538609, + "modified" : 1374084538609, + "metadata" : { + "path" : "/multis/f3a8061a-ef0b-11e2-9e92-5f4a65c16193" + }, + "name" : "milk" + }, { + "uuid" : "f3be262a-ef0b-11e2-a51b-6715d5ef47a6", + "type" : "item", + "name" : "bread", + "price" : "2.50", + "created" : 1374084538754, + "modified" : 1374084538754, + "metadata" : { + "path" : "/items/f3be262a-ef0b-11e2-a51b-6715d5ef47a6" + }, + "name" : "bread" + } ], + "timestamp" : 1374084538584, + "duration" : 388, + "organization" : "your-org", + "applicationName" : "your-app" +} + +### 7. Creating an entity with sub-properties + +SDK Method +(ApigeeClientResponse *)createEntity:(NSDictionary *)newEntity +Parameters +Parameter Description +newEntity NSMutableDictionary object that contains the entity properties +Example Request/Response +Show Code +Request: +-(NSString*)newEntity { + + //Initialize an object for the new entity to be created + NSMutableDictionary *entity = [ [NSMutableDictionary alloc] init ]; + + //Initialize an object for each nested variety object + NSMutableDictionary *variety_1 = [ [NSMutableDictionary alloc] init ]; + NSMutableDictionary *variety_2 = [ [NSMutableDictionary alloc] init ]; + NSMutableDictionary *variety_3 = [ [NSMutableDictionary alloc] init ]; + + //Initialize an array to hold the nested variety objects + NSMutableArray *variety_list = [ [NSMutableArray alloc] init]; + + [variety_1 setObject:@"1%" forKey:@"name"]; + [variety_1 setObject:@"3.25" forKey:@"price"]; + [variety_1 setObject:@"0393847575533445" forKey:@"sku"]; + + [variety_2 setObject:@"whole" forKey:@"name"]; + [variety_2 setObject:@"3.85" forKey:@"price"]; + [variety_2 setObject:@"0393394956788445" forKey:@"sku"]; + + [variety_3 setObject:@"skim" forKey:@"name"]; + [variety_3 setObject:@"4.00" forKey:@"price"]; + [variety_3 setObject:@"0390299933488445" forKey:@"sku"]; + + //Add the variety objects to the array + [variety_list addObject:variety_1]; + [variety_list addObject:variety_2]; + [variety_list addObject:variety_3]; + + //Set the item entity properties + [entity setObject:@"item" forKey:@"type"]; //Required. New entity type to create + [entity setObject:@"milk" forKey:@"name"]; + + //Set the variety_list array as the value of the 'varieties' property + [entity setObject:variety_list forKey:@"varieties"]; + + //we recommend you call ApigeeClient from your AppDelegate. + //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios + //create an instance of AppDelegate + AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate]; + + //call createEntity to initiate the API call + ApigeeClientResponse *response = [appDelegate.dataClient createEntity:entity]; + + @try { + //success + } + @catch (NSException * e) { + //fail + } + +} + +Response: +{ + "action" : "post", + "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0", + "params" : { }, + "path" : "/items", + "uri" : "http://api.usergrid.com/your-org/your-app/items", + "entities" : [ { + "uuid" : "0d7cf92a-effb-11e2-917d-c5e707256e71", + "type" : "item", + "name" : "milk", + "created" : 1374187231666, + "modified" : 1374187231666, + "metadata" : { + "path" : "/items/0d7cf92a-effb-11e2-917d-c5e707256e71" + }, + "name" : "milk", + "varieties" : [ { + "name" : "1%", + "price" : "3.25", + "SKU" : "0393847575533445" + }, { + "name" : "whole", + "price" : "3.85", + "SKU" : "0393394956788445" + }, { + "name" : "skim", + "price" : "4.00", + "SKU" : "0390299933488445" + } ] + } ], + "timestamp" : 1374187450826, + "duration" : 50, + "organization" : "your-org", + "applicationName" : "your-app" +} + + +### 8. Retrieving an entity + +SDK Method + + (ApigeeClientResponse *)getEntities: (NSString *)endpoint query:(NSString *)query + +Properties + +Parameter Description +--------- ----------- +endpoint The collection and entity identifier of the entity to be retrieved. +query An optional query string. Requests for a specific entity should set the value to nil + +Endpoint exported in the following format: <collection>/<entity_UUID_or_name> + +Example Request/Response + +Request: + + -(NSString*)getEntity { + + //specify the entity collection and UUID or name to be retrieved + NSString *endpoint = @"items/b3aad0a4-f322-11e2-a9c1-999e12039f87"; + + NSString *query = nil; + + //we recommend you call ApigeeClient from your AppDelegate. + //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios + //create an instance of AppDelegate + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + + //call getEntities to initiate the API call + ApigeeClientResponse *response = [appDelegate.dataClient getEntities:endpoint queryString:query]; + + @try { + //success + } + + @catch (NSException * e) { + //fail + } + + } + +Response: + + { + "action" : "get", + "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0", + "params" : { }, + "path" : "/items", + "uri" : "http://api.usergrid.com/amuramoto/sandbox/items", + "entities" : [ { + "uuid" : "5bb76bca-1657-11e3-903f-9ff6c621a7a4", + "type" : "item", + "name" : "milk", + "created" : 1378405020796, + "modified" : 1378405020796, + "metadata" : { + "path" : "/items/5bb76bca-1657-11e3-903f-9ff6c621a7a4" + }, + "name" : "milk", + "price" : "3.25" + } ], + "timestamp" : 1378405025763, + "duration" : 31, + "organization" : "amuramoto", + "applicationName" : "sandbox" + } + +### 9. Retrieving multiple entities + +SDK Method + + (ApigeeClientResponse *)getEntities: (NSString *)type queryString:(NSString *)queryString + +Properties + +Parameter Description +--------- ----------- +type The entity type being retrieved +queryString A query string of entity properties to be matched for the entities to be retrieved. + +Query string is expected in the following format: <property>=<value> OR <property>=<value> OR ... + +Example Request/Response + +Request: + + -(NSString*)getEntity { + + //specify the entity type to be retrieved + NSString *type = @"item"; + + //specify the uuid of the entity to be retrieved in a query string + NSString *query = @"uuid = b3aad0a4-f322-11e2-a9c1-999e12039f87 or name = 'bread'"; + + //we recommend you call ApigeeClient from your AppDelegate. + //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios + //create an instance of AppDelegate + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + + //call createEntity to initiate the API call + ApigeeClientResponse *response = [appDelegate.dataClient getEntities:type queryString:query]; + + @try { + //success + } + @catch (NSException * e) { + //fail + } + + } + +Response: + + { + "action" : "get", + "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0", + "params" : { + "ql" : [ "name='milk' OR UUID=1a9356ba-1682-11e3-a72a-81581bbaf055" ] + }, + "path" : "/items", + "uri" : "http://api.usergrid.com/your-org/your-app/items", + "entities" : [ { + "uuid" : "5bb76bca-1657-11e3-903f-9ff6c621a7a4", + "type" : "item", + "name" : "milk", + "created" : 1378405020796, + "modified" : 1378405020796, + "metadata" : { + "path" : "/items/5bb76bca-1657-11e3-903f-9ff6c621a7a4" + }, + "name" : "milk", + "price" : "3.25" + }, { + "uuid" : "1a9356ba-1682-11e3-a72a-81581bbaf055", + "type" : "item", + "name" : "bread", + "created" : 1378423379867, + "modified" : 1378423379867, + "metadata" : { + "path" : "/items/1a9356ba-1682-11e3-a72a-81581bbaf055" + }, + "name" : "bread", + "price" : "2.50" + } ], + "timestamp" : 1378423793729, + "duration" : 63, + "organization" : "your-org", + "applicationName" : "your-app", + "count" : 2 + } + + +### 10. Updating an entity + +SDK Method + + (ApigeeClientResponse *)updateEntity: (NSString *)entityID entity:(NSDictionary *)updatedEntity + +Parameters + +Parameter Description +--------- ----------- +entityID UUID of the entity to be updated +updatedEntity NSMutableDictionary containing the properties to be updated + +Example Request/Response + +Request: + + -(NSString*)updateEntity { + + //UUID of the entity to be updated + NSString *entityID = @"f42752aa-08fe-11e3-8268-5bd5fa5f701f"; + + //Create an entity object + NSMutableDictionary *updatedEntity = [ [NSMutableDictionary alloc] init ]; + + //Set entity properties to be updated + [updatedEntity setObject:@"item" forKey:@"type"]; //Required - entity type + [updatedEntity setObject:@"in-stock" forKey:@"availability"]; + [updatedEntity setObject:@"4.00" forKey:@"price"]; + + //we recommend you call ApigeeClient from your AppDelegate. + //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios + //create an instance of AppDelegate + AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate]; + + //call updateEntity to initiate the API call + ApigeeClientResponse *response = [appDelegate.dataClient updateEntity:entityID entity:updatedEntity]; + + @try { + + //success + + } + @catch (NSException * e) { + //fail + } + + } + +Response: + + { + "action" : "put", + "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0", + "params" : { }, + "path" : "/items", + "uri" : "http://api.usergrid.com/your-org/your-app/items", + "entities" : [ { + "uuid" : "5bb76bca-1657-11e3-903f-9ff6c621a7a4", + "type" : "item", + "name" : "milk", + "created" : 1378405020796, + "modified" : 1378505705077, + "availability" : "in-stock", + "metadata" : { + "path" : "/items/5bb76bca-1657-11e3-903f-9ff6c621a7a4" + }, + "name" : "milk", + "price" : "4.00" + } ], + "timestamp" : 1378505705050, + "duration" : 87, + "organization" : "your-org", + "applicationName" : "your-app" + } + + +### 11. Updating a sub-property + +SDK Method + + (ApigeeClientResponse *)updateEntity: (NSString *)entityID entity:(NSDictionary *)updatedEntity + +Parameters + +Parameter Description +--------- ----------- +entityID UUID of the entity to be updated +updatedEntity Entity object containing the properties to be updated + +Example Request/Response + +Request: + + -(NSString*)updateEntity { + + //UUID of the entity to be updated + NSString *entityID = @"f42752aa-08fe-11e3-8268-5bd5fa5f701f"; + + //Define our two sub-properties to include in the update + NSMutableDictionary *subproperty1 = [ [NSMutableDictionary alloc] init]; + NSMutableDictionary *subproperty2 = [ [NSMutableDictionary alloc] init]; + [subproperty1 setObject:@"1%" forKey:@"name"]; + [subproperty1 setObject:@"3.25" forKey:@"price"]; + [subproperty2 setObject:@"whole" forKey:@"name"]; + [subproperty2 setObject:@"4.00" forKey:@"price"]; + + //Put our sub-properties into an NSArray + NSArray *subproperties = [ [NSArray alloc] initWithObjects:props1,props2, nil]; + + //Create an NSMutableDictionary to hold our updates + NSMutableDictionary *updatedEntity = [ [NSMutableDictionary alloc] init ]; + + //Set the properties to be updated + [updatedEntity setObject:@"item" forKey:@"type"]; //Required - entity type + [updatedEntity setObject:props forKey:@"varieties"]; + + //we recommend you call ApigeeClient from your AppDelegate. + //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios + //create an instance of AppDelegate + AppDelegate *appDelegate = (AppDelegate *)[ [UIApplication sharedApplication] delegate]; + + //call createEntity to initiate the API call + ApigeeClientResponse *response = [appDelegate.dataClient updateEntity:entityID entity:updatedEntity]; + + @try { + + //success + + } + @catch (NSException * e) { + //fail + } + + } + +Response: + + { + "action" : "put", + "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0", + "params" : { }, + "path" : "/items", + "uri" : "http://api.usergrid.com/your-org/your-app/items", + "entities" : [ { + "uuid" : "5bb76bca-1657-11e3-903f-9ff6c621a7a4", + "type" : "item", + "name" : "milk", + "created" : 1378405020796, + "modified" : 1378761459069, + "availability" : "in-stock", + "metadata" : { + "path" : "/items/5bb76bca-1657-11e3-903f-9ff6c621a7a4" + }, + "name" : "milk", + "uri" : "http://api.usergrid.com/your-org/your-app/items/5bb76bca-1657-11e3-903f-9ff6c621a7a4", + "varieties" : [ { + "name" : "1%", + "price" : "3.25" + }, { + "name" : "whole", + "price" : "4.00" + } ] + } ], + "timestamp" : 1378761459047, + "duration" : 62, + "organization" : "your-org", + "applicationName" : "your-app" + } + + +### 12. Deleting data entities + +SDK Method + + (ApigeeClientResponse *)removeEntity: (NSString *)type entityID:(NSString *)entityID + +Properties + +Parameter Description +--------- ----------- +type The entity type being deleted +entityID The UUID or name of the entity to be removed + +Example Request/Response + +Request: + + -(NSString*)deleteEntity { + + //specify the entity type to be deleted + NSString *type = @"item"; + + //specify the uuid or name of the entity to be deleted + NSString *entityId = @"milk"; + + //we recommend you call ApigeeClient from your AppDelegate. + //for more information see the iOS SDK install guide: http://apigee.com/docs/app-services/content/installing-apigee-sdk-ios + //create an instance of AppDelegate + AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate]; + + //call removeEntity to initiate the API call + ApigeeClientResponse *response = [appDelegate.dataClient removeEntity:type entityID:entityId]; + + @try { + //success + } + @catch (NSException * e) { + //fail + } + } + +Response: + + { + "action" : "delete", + "application" : "f34f4222-a166-11e2-a7f7-02e81adcf3d0", + "params" : { }, + "path" : "/items", + "uri" : "http://api.usergrid.com/your-org/your-app/items", + "entities" : [ { + "uuid" : "328fe64a-19a0-11e3-8a2a-ebc6f49d1fc4", + "type" : "item", + "name" : "milk", + "created" : 1378766158500, + "modified" : 1378766158500, + "metadata" : { + "path" : "/items/328fe64a-19a0-11e3-8a2a-ebc6f49d1fc4" + }, + "name" : "milk", + "price" : "3.25" + } ], + "timestamp" : 1378766172016, + "duration" : 324, + "organization" : "your-org", + "applicationName" : "your-app" + } + + +## Data Queries + +### 13. Querying your data + +## Entity Connections + +### 14. Connecting users other data +### 15. Retrieving user connection data +### 16. Disconnecting entities + +## Permissions & Roles + +### 17. Assigning permissions +### 18. Removing permissions +### 19. Assigning permissions +### 20. Removing permissions +### 21. Creating roles +### 22. Assigning roles +### 23. Removing roles + +## Authentication + +### 24. Application user authentication (user login) +### 25. Application client authentication +### 26. Admin user authentication +### 27. Organization client authentication +### 28. Revoking tokens (user logout) + +# Working with Users & Groups + +### 29. Creating users +### 30. Retrieving user data +### 31. Setting or updating password +### 32. Creating groups +### 33. Retrieving group data +### 34. Retrieving a group's users +### 35. Adding users groups +### 36. Deleting user group + +## Activities & Feeds + +### 37. Posting a user activity +### 38. Posting an activity to a group +### 39. Creating an activity for a user's followers in a group +### 40. Retrieving a user's activity feed +### 41. Retrieving a group's activity feed + +## Events & Counters + +### 42. Creating & incrementing counters +### 43. Retrieving counters +### 44. Retrieving counters by time interval + +## Managing Orgs & Apps + +### 46. Creating an organization +### 47. Getting an organization +### 48. Activating an organization +### 49. Reactivating an organization +### 50. Generating organization client credentials +### 51. Retrieving organization client credentials +### 52. Getting an organization's activity feed +### 53. Getting the applications in an organization +### 54. Getting the admin users in an organization +### 55. Removing an admin user from an organization +### 56. Creating an organization application +### 57. Generating application credentials +### 58. Getting application credentials + +## Managing Admin Users + +### 59. Creating an admin user +### 60. Updating an admin user +### 61. Getting an admin user +### 62. Setting an admin user's password +### 63. Resetting an admin user's password +### 64. Activating an admin user +### 65. Reactivating an admin user +### 66. Getting an admin user's activity feed + + \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/780e3f2f/docs/sdks/java.md ---------------------------------------------------------------------- diff --git a/docs/sdks/java.md b/docs/sdks/java.md deleted file mode 100644 index a2a5086..0000000 --- a/docs/sdks/java.md +++ /dev/null @@ -1 +0,0 @@ -# Java SDK \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/780e3f2f/docs/sdks/javascript.md ---------------------------------------------------------------------- diff --git a/docs/sdks/javascript.md b/docs/sdks/javascript.md deleted file mode 100644 index 685d42d..0000000 --- a/docs/sdks/javascript.md +++ /dev/null @@ -1,3 +0,0 @@ -# JavaScript/HTML5 SDK - - http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/780e3f2f/docs/sdks/sdk-outline.md ---------------------------------------------------------------------- diff --git a/docs/sdks/sdk-outline.md b/docs/sdks/sdk-outline.md new file mode 100644 index 0000000..48bd3fc --- /dev/null +++ b/docs/sdks/sdk-outline.md @@ -0,0 +1,111 @@ +# Usergrid SDK Documentation outline + +## Getting Started + +### Installing the SDK +### Building from Source + +# Usergrid SDK Reference with Examples + +The 66 topics listed below are each documented in the Usergrid documentation and +for each the docs provide an API reference and example for each of these clients: +curl, iOS, Android, JavaScript, Ruby and Node.js. + +## Working with Collections + +### 1. Creating collections +### 2. Retrieving collections +### 3. Updating collections +### 4. Deleting collections + +## Working with Entities + +### 5. Creating a custom entity +### 6. Creating multiple custom entities +### 7. Creating an entity with sub-properties +### 8. Retrieving an entity +### 9. Retrieving multiple entities +### 10. Updating an entity +### 11. Updating a sub-property +### 12. Deleting data entities + +## Data Queries + +### 13. Querying your data + +## Entity Connections + +### 14. Connecting users other data +### 15. Retrieving user connection data +### 16. Disconnecting entities + +## Permissions & Roles + +### 17. Assigning permissions +### 18. Removing permissions +### 19. Assigning permissions +### 20. Removing permissions +### 21. Creating roles +### 22. Assigning roles +### 23. Removing roles + +## Authentication + +### 24. Application user authentication (user login) +### 25. Application client authentication +### 26. Admin user authentication +### 27. Organization client authentication +### 28. Revoking tokens (user logout) + +# Working with Users & Groups + +### 29. Creating users +### 30. Retrieving user data +### 31. Setting or updating password +### 32. Creating groups +### 33. Retrieving group data +### 34. Retrieving a group's users +### 35. Adding users groups +### 36. Deleting user group + +## Activities & Feeds + +### 37. Posting a user activity +### 38. Posting an activity to a group +### 39. Creating an activity for a user's followers in a group +### 40. Retrieving a user's activity feed +### 41. Retrieving a group's activity feed + +## Events & Counters + +### 42. Creating & incrementing counters +### 43. Retrieving counters +### 44. Retrieving counters by time interval + +## Managing Orgs & Apps + +### 46. Creating an organization +### 47. Getting an organization +### 48. Activating an organization +### 49. Reactivating an organization +### 50. Generating organization client credentials +### 51. Retrieving organization client credentials +### 52. Getting an organization's activity feed +### 53. Getting the applications in an organization +### 54. Getting the admin users in an organization +### 55. Removing an admin user from an organization +### 56. Creating an organization application +### 57. Generating application credentials +### 58. Getting application credentials + +## Managing Admin Users + +### 59. Creating an admin user +### 60. Updating an admin user +### 61. Getting an admin user +### 62. Setting an admin user's password +### 63. Resetting an admin user's password +### 64. Activating an admin user +### 65. Reactivating an admin user +### 66. Getting an admin user's activity feed + \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/780e3f2f/docs/sdks/usage.md ---------------------------------------------------------------------- diff --git a/docs/sdks/usage.md b/docs/sdks/usage.md deleted file mode 100644 index 2d2f139..0000000 --- a/docs/sdks/usage.md +++ /dev/null @@ -1,16 +0,0 @@ -# SDKs & Tools - -## SDKs - -* [iOS SDK](https://github.com/apache/incubator-usergrid/tree/master/sdks/ios) -* [Android SDK](https://github.com/apache/incubator-usergrid/tree/master/sdks/android) -* [HTML5 / JavaScript SDK](https://github.com/apache/incubator-usergrid/tree/master/sdks/html5-javascript) -* [Windows 8 / Windows Phone / .net SDK](https://github.com/apache/incubator-usergrid/tree/master/sdks/dotnet) -* [Ruby gem](https://github.com/apache/incubator-usergrid/tree/master/sdks/ruby) -* [Ruby on Rails gem](https://github.com/apache/incubator-usergrid/tree/master/sdks/ruby-on-rails) -* [PHP library](https://github.com/apache/incubator-usergrid/tree/master/sdks/php) -* [Java library](https://github.com/apache/incubator-usergrid/tree/master/sdks/java) -* [Perl module](https://github.com/apache/incubator-usergrid/tree/master/sdks/perl) - -## Tools -[ugc â the Command-line Client](https://github.com/apache/incubator-usergrid/tree/master/ugc#usergrid-command-line-ugc) \ No newline at end of file http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/780e3f2f/sdks/android/README.md ---------------------------------------------------------------------- diff --git a/sdks/android/README.md b/sdks/android/README.md index 4fe667a..0218763 100755 --- a/sdks/android/README.md +++ b/sdks/android/README.md @@ -1,5 +1,4 @@ -Usergrid Android SDK Overview -======================= +# Android SDK Installing the SDK -------------------- http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/780e3f2f/sdks/html5-javascript/README.md ---------------------------------------------------------------------- diff --git a/sdks/html5-javascript/README.md b/sdks/html5-javascript/README.md index 2b87573..bebc955 100755 --- a/sdks/html5-javascript/README.md +++ b/sdks/html5-javascript/README.md @@ -1,3 +1,5 @@ +# HTML5-JavaScript SDK + ##Quickstart Detailed instructions follow but if you just want a quick example of how to get started with this SDK, hereâs a minimal HTML5 file that shows you how to include & initialize the SDK, as well as how to read & write data from Usergrid with it. http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/780e3f2f/sdks/ios/README.md ---------------------------------------------------------------------- diff --git a/sdks/ios/README.md b/sdks/ios/README.md index 2377222..b0ba069 100644 --- a/sdks/ios/README.md +++ b/sdks/ios/README.md @@ -1,3 +1,5 @@ +# iOS SDK + ##Version Current Version: **0.9.2** @@ -6,7 +8,6 @@ Change log: <https://github.com/apigee/usergrid-javascript-sdk/blob/master/changelog.md> - ##Overview This open source SDK simplifies writing iOS applications that connect to App Services (Usergrid). The repo is located here: http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/780e3f2f/sdks/nodejs/readme.md ---------------------------------------------------------------------- diff --git a/sdks/nodejs/readme.md b/sdks/nodejs/readme.md index f3342ee..b394551 100755 --- a/sdks/nodejs/readme.md +++ b/sdks/nodejs/readme.md @@ -1,3 +1,5 @@ +# Node.js SDK + ##Version Current Version: **0.10.8** http://git-wip-us.apache.org/repos/asf/incubator-usergrid/blob/780e3f2f/sdks/ruby/README.md ---------------------------------------------------------------------- diff --git a/sdks/ruby/README.md b/sdks/ruby/README.md index d719a49..2f6c594 100644 --- a/sdks/ruby/README.md +++ b/sdks/ruby/README.md @@ -1,4 +1,4 @@ -# Usergrid_iron +# Ruby SDK Usergrid_iron enables simple, low-level Ruby access to Apigee's App Services (aka Usergrid) REST API with minimal dependencies.