Difference between revisions of "Web Services Examples"

From the Directed Edge Developer Base
Jump to: navigation, search
(Adding a property to an item)
(move down below)
Line 90: Line 90:
  
 
{{CurlPut|user4|/user4}}
 
{{CurlPut|user4|/user4}}
 
== Retrieving an item ==
 
 
{{CurlGet|/user4}}
 
 
Produces:
 
 
<source lang="xml">
 
<?xml version="1.0" standalone="yes"?>
 
 
<directededge version="0.1">
 
  <item id="user4">
 
    <tag>user</tag>
 
  </item>
 
</directededge>
 
</source>
 
 
Again, just as we created a moment ago.
 
  
 
== Updating an item ==
 
== Updating an item ==
Line 154: Line 136:
  
 
{{CurlPut|link|/user4/add}}
 
{{CurlPut|link|/user4/add}}
 
Since we've done a number of updates to our item now, let's go ahead and check its values again:
 
 
{{CurlGet|/user4}}
 
 
<source lang="xml">
 
<?xml version="1.0" standalone="yes"?>
 
 
<directededge version="0.1">
 
  <item id="user4">
 
    <tag>Berliner</tag>
 
    <tag>user</tag>
 
    <link>product3</link>
 
    <property name="city">Berlin</property>
 
  </item>
 
</directededge>
 
</source>
 
  
 
== Adding a property to an item ==
 
== Adding a property to an item ==
Line 190: Line 155:
  
 
== Removing a link from an item ==
 
== Removing a link from an item ==
 +
 +
== Retrieving an item ==
 +
 +
{{CurlGet|/user4}}
 +
 +
Produces:
 +
 +
<source lang="xml">
 +
<?xml version="1.0" standalone="yes"?>
 +
 +
<directededge version="0.1">
 +
  <item id="user4">
 +
    <tag>user</tag>
 +
  </item>
 +
</directededge>
 +
</source>
 +
 +
Again, just as we created a moment ago.
  
 
== Deleting an item ==
 
== Deleting an item ==

Revision as of 10:00, 24 May 2009

So, now that you've been through the documentation on the API Concepts, XML Format and REST API, let's take a look at a few practical examples of working with the Directed Edge webservices.

For these examples we'll be using the command line tool curl to upload XML to the webservices.

Importing a database

Let's start with a very simple database with three users (with the IDs user1, user2 and user3) and three products (with the IDs product1, product2 and product3).

<?xml version="1.0" encoding="UTF-8"?>
<directededge version="0.1">
  <item id="user1">
    <tag>user</tag>
    <link>product1</link>
    <link>product2</link>
  </item>
  <item id="user2">
    <tag>user</tag>
    <link>product3</link>
  </item>
  <item id="user3">
    <tag>user</tag>
    <link>product2</link>
  </item>
  <item id="product1">
    <tag>product</tag>
  </item>
  <item id="product2">
    <tag>product</tag>
  </item>
  <item id="product3">
    <tag>product</tag>
  </item>
</directededge>

Curl Command (Download XML):

$ curl -T database.xml https://exampledb:password@webservices.directededge.com/api/v1/exampledb

This imports the structure above into the exampledb database.

Exporting a database

Curl Command:

$ curl https://exampledb:password@webservices.directededge.com/api/v1/exampledb

Produces:

<?xml version="1.0" standalone="yes"?>

<directededge version="0.1">
  <item id="user1">
    <tag>user</tag>
    <link>product1</link>
    <link>product2</link>
  </item>
  <item id="user2">
    <tag>user</tag>
    <link>product3</link>
  </item>
  <item id="user3">
    <tag>user</tag>
    <link>product2</link>
  </item>
  <item id="product1">
    <tag>product</tag>
  </item>
  <item id="product2">
    <tag>product</tag>
  </item>
  <item id="product3">
    <tag>product</tag>
  </item>
</directededge>

Which is what we imported just above.

Adding an item

Adds a user with the ID user4 to the database.

<?xml version="1.0" encoding="UTF-8"?>
<directededge version="0.1">
  <item id="user4">
    <tag>user</tag>
  </item>
</directededge>

Curl Command (Download XML):

$ curl -T user4.xml https://exampledb:password@webservices.directededge.com/api/v1/exampledb/user4

Updating an item

Here we update the item above, but this time add the property city. This overwrites all current contents of the item.

<?xml version="1.0" encoding="UTF-8"?>
<directededge version="0.1">
  <item id="user4">
    <tag>user</tag>
    <property name="city">Berlin</property>
  </item>
</directededge>

Curl Command (Download XML):

$ curl -T user4-update.xml https://exampledb:password@webservices.directededge.com/api/v1/exampledb/user4

Adding a tag to an item

Here we add the tag Berliner to the user that we created / updated in the previous sections. As noted in the XML Format description, here we're allowed to omit the item's ID.

<?xml version="1.0" encoding="UTF-8"?>
<directededge version="0.1">
  <item>
    <tag>Berliner</tag>
  </item>
</directededge>

Curl Command (Download XML):

$ curl -T tag.xml https://exampledb:password@webservices.directededge.com/api/v1/exampledb/user4/add

Adding a link to an item

This creates a link from our recently created user to product3. Again, since we're updating the item we can omit the item ID.

<?xml version="1.0" encoding="UTF-8"?>
<directededge version="0.1">
  <item>
    <link>product3</link>
  </item>
</directededge>

Curl Command (Download XML):

$ curl -T link.xml https://exampledb:password@webservices.directededge.com/api/v1/exampledb/user4/add

Adding a property to an item

Sets the value of the property country to Germany.

<?xml version="1.0" encoding="UTF-8"?>
<directededge version="0.1">
  <item>
    <property name="country">Germany</property>
  </item>
</directededge>

Curl Command (Download XML):

$ curl -T property.xml https://exampledb:password@webservices.directededge.com/api/v1/exampledb/user4/add

Removing a tag from an item

Removing a link from an item

Retrieving an item

Curl Command:

$ curl https://exampledb:password@webservices.directededge.com/api/v1/exampledb/user4

Produces:

<?xml version="1.0" standalone="yes"?>

<directededge version="0.1">
  <item id="user4">
    <tag>user</tag>
  </item>
</directededge>

Again, just as we created a moment ago.

Deleting an item

Finding related items

Doing personalized recommendations