<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to ProfileAPI</title><link>https://sourceforge.net/p/easyrec/wiki/ProfileAPI/</link><description>Recent changes to ProfileAPI</description><atom:link href="https://sourceforge.net/p/easyrec/wiki/ProfileAPI/feed" rel="self"/><language>en</language><lastBuildDate>Mon, 16 May 2016 18:18:42 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/easyrec/wiki/ProfileAPI/feed" rel="self" type="application/rss+xml"/><item><title>ProfileAPI modified by Stephan Zavrel</title><link>https://sourceforge.net/p/easyrec/wiki/ProfileAPI/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -28,9 +28,10 @@
 ## Path Examples

 Given the json
-&lt;pre&gt;&lt;code&gt; {
+~~~
+{
     "store": {
-        "book": \[
+        "book": [
             {
                 "category": "reference",
                 "author": "Nigel Rees",
@@ -57,14 +58,15 @@
                 "isbn": "0-395-19395-8",
                 "price": 22.99
             }
-        \],
+        ],
         "bicycle": {
             "color": "red",
             "price": 19.95
         }
     },
     "expensive": 10
-    }&lt;/code&gt;&lt;/pre&gt;
+    }
+~~~

 JsonPath | Result
 ---------|---------
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stephan Zavrel</dc:creator><pubDate>Mon, 16 May 2016 18:18:42 -0000</pubDate><guid>https://sourceforge.net19a626e060354f509766e860d8700d020eb4c967</guid></item><item><title>ProfileAPI modified by Stephan Zavrel</title><link>https://sourceforge.net/p/easyrec/wiki/ProfileAPI/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -84,3 +84,139 @@
 &lt;code&gt;$..book\[?(@.price &amp;lt;= $\['expensive'\])\]&lt;/code&gt; | All books in store that are not "expensive" 
 &lt;code&gt;$..book\[?(@.author =~ /.*REES/i)\]&lt;/code&gt; | All books matching regex (ignore case) 
 &lt;code&gt;$..*&lt;/code&gt; | Give me every thing 
+
+# API
+## Store
+This method stores the given profile to the item defined by the *tenantid*,*itemid* and the *itemtypeid*. If there is already a profile it will be overwritten. 
+
+### Sample Call
+**HTTP POST**
+&amp;gt; &lt;code&gt;{*yourServerURL*}/api/1.1/json/profile/store&lt;/code&gt;
+
+### Parameters
+parameter | occurrence | description
+----------|-----------|------------
+apikey | required | The required API Key to access this service. (e.g. "8ab9dc3ffcdac576d0f298043a60517a") 
+tenantid | required | tenant id to identify your website. (e.g. "EASYREC_DEMO")
+
+### Response
+
+### Error Codes
+
+## Store Item with profile
+This method creates a new item and stores the given profile for this item.
+
+### Sample Call
+**HTTP POST**
+&amp;gt; &lt;code&gt;{*yourServerURL*}/api/1.1/json/profile/storeitemwithprofile&lt;/code&gt;
+
+### Parameters
+parameter | occurrence | description
+----------|-----------|------------
+apikey | required | The required API Key to access this service. (e.g. "8ab9dc3ffcdac576d0f298043a60517a") 
+tenantid | required | tenant id to identify your website. (e.g. "EASYREC_DEMO")
+
+### Response
+
+### Error Codes
+
+## Delete
+This method deletes the profile of the item defined by the tenantid, itemid and the itemtypeid. 
+
+### Sample Call
+**HTTP DELETE**
+&amp;gt; &lt;code&gt;{*yourServerURL*}/api/1.1/json/profile/delete?apikey=8ab9dc3ffcdac576d0f298043a60517a&amp;amp;itemid=42&amp;amp;itemtype=ITEM&amp;amp;tenantid=EASYREC_DEMO&lt;/code&gt;
+### Parameters
+parameter | occurrence | description
+----------|-----------|------------
+apikey | required | The required API Key to access this service. (e.g. "8ab9dc3ffcdac576d0f298043a60517a") 
+tenantid | required | tenant id to identify your website. (e.g. "EASYREC_DEMO")
+
+### Response
+
+### Error Codes
+
+## Field delete
+This method deletes a specific field of the profile which belongs to the item defined by the tenantid, itemid and the itemtypeid. The field can be addressed by a JSONPath expression.
+
+### Sample Call
+**HTTP DELETE**
+&amp;gt; &lt;code&gt;{*yourServerURL*}/api/1.1/json/profile/field/delete?apikey=8ab9dc3ffcdac576d0f298043a60517a&amp;amp;itemid=42&amp;amp;itemtype=ITEM&amp;amp;path=$.store.book.price&amp;amp;tenantid=EASYREC_DEMO&lt;/code&gt;
+
+### Parameters
+parameter | occurrence | description
+----------|-----------|------------
+apikey | required | The required API Key to access this service. (e.g. "8ab9dc3ffcdac576d0f298043a60517a") 
+tenantid | required | tenant id to identify your website. (e.g. "EASYREC_DEMO")
+
+### Response
+
+### Error Codes
+
+## Load
+This method returns the profile of the item defined by the tenantid, itemid and the itemtypeid 
+
+### Sample Call
+**HTTP GET**
+&amp;gt; &lt;code&gt;{*yourServerURL*}/api/1.1/json/profile/load?apikey=8ab9dc3ffcdac576d0f298043a60517a&amp;amp;itemid=42&amp;amp;itemtype=ITEM&amp;amp;tenantid=EASYREC_DEMO&lt;/code&gt;
+
+### Parameters
+parameter | occurrence | description
+----------|-----------|------------
+apikey | required | The required API Key to access this service. (e.g. "8ab9dc3ffcdac576d0f298043a60517a") 
+tenantid | required | tenant id to identify your website. (e.g. "EASYREC_DEMO")
+
+### Response
+
+### Error Codes
+
+## Field load
+This method loads the values from a specific field of the profile which belongs to the item defined by the tenantid, itemid and the itemtypeid. The field can be addressed by a JSONPath expression.
+
+### Sample Call
+**HTTP GET**
+&amp;gt; &lt;code&gt;{*yourServerURL*}/api/1.1/json/profile/field/load?apikey=8ab9dc3ffcdac576d0f298043a60517a&amp;amp;itemid=42&amp;amp;itemtype=ITEM&amp;amp;path=$.store.book.price&amp;amp;tenantid=EASYREC_DEMO&lt;/code&gt;
+
+### Parameters
+parameter | occurrence | description
+----------|-----------|------------
+apikey | required | The required API Key to access this service. (e.g. "8ab9dc3ffcdac576d0f298043a60517a") 
+tenantid | required | tenant id to identify your website. (e.g. "EASYREC_DEMO")
+
+### Response
+
+### Error Codes
+
+## Field store
+This method stores a value into a specific field of the profile which belongs to the item defined by the tenantid, itemid and the itemtypeid. The field can be addressed by a JSONPath expression.
+
+### Sample Call
+**HTTP PUT**
+&amp;gt; &lt;code&gt;{*yourServerURL*}/api/1.1/json/profile/field/store&lt;/code&gt;
+
+### Parameters
+parameter | occurrence | description
+----------|-----------|------------
+apikey | required | The required API Key to access this service. (e.g. "8ab9dc3ffcdac576d0f298043a60517a") 
+tenantid | required | tenant id to identify your website. (e.g. "EASYREC_DEMO")
+
+### Response
+
+### Error Codes
+
+## Field push
+This method adds a value to a specific ARRAY field of the profile which belongs to the item defined by the tenantid, itemid and the itemtypeid. The field can be addressed by a JSONPath expression. 
+
+### Sample Call
+**HTTP PUT**
+&amp;gt; &lt;code&gt;{*yourServerURL*}/api/1.1/json/profile/field/push&lt;/code&gt;
+
+### Parameters
+parameter | occurrence | description
+----------|-----------|------------
+apikey | required | The required API Key to access this service. (e.g. "8ab9dc3ffcdac576d0f298043a60517a") 
+tenantid | required | tenant id to identify your website. (e.g. "EASYREC_DEMO")
+
+### Response
+
+### Error Codes
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stephan Zavrel</dc:creator><pubDate>Wed, 05 Aug 2015 15:48:15 -0000</pubDate><guid>https://sourceforge.net19726cea2239e26e8a65d4bd72d7a2ae29caca0a</guid></item><item><title>ProfileAPI modified by Stephan Zavrel</title><link>https://sourceforge.net/p/easyrec/wiki/ProfileAPI/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -3,7 +3,7 @@
 The profile API allows you to add additional meta data (i.e. a profile) in JSON format to items which can be used for analysis in more sophisticated recommendation strategies.

 ## HTTP functions
-Other than all the traditional REST style easyrec APIs (actions, recommendations,rankings,...) which all use HTTP GET requestes exclusively, the new JSON profile API uses the appropriate HTTP functions for its calls, so please pay attention to this fact when reading the documentation below.
+Other than all the older REST style easyrec APIs (actions, recommendations,rankings,...) which all use HTTP GET requests exclusively, the new JSON profile API uses the appropriate HTTP functions depending on the type of call, so please pay attention to this fact when reading the documentation below.

 ## MIME Types
 All API calls accept data sent in either *application/json* or *application/x-www-form-urlencoded*.  
@@ -68,3 +68,19 @@

 JsonPath | Result
 ---------|---------
+&lt;code&gt;$.store.book\[*\].author&lt;/code&gt; | The authors of all books 
+&lt;code&gt;$..author&lt;/code&gt; | All authors 
+&lt;code&gt;$.store.*&lt;/code&gt; | All things, both books and bicycles 
+&lt;code&gt;$.store..price&lt;/code&gt; | The price of everything 
+&lt;code&gt;$..book\[2\]&lt;/code&gt; | The third book 
+&lt;code&gt;$..book\[(@.length-1)\]&lt;/code&gt; | The last book 
+&lt;code&gt;$..book\[0,1\]&lt;/code&gt; | The first two books 
+&lt;code&gt;$..book\[:2\]&lt;/code&gt; | All books from index 0 (inclusive) until index 2 (exclusive) 
+&lt;code&gt;$..book\[1:2\]&lt;/code&gt; | All books from index 1 (inclusive) until index 2 (exclusive) 
+&lt;code&gt;$..book\[-2:\]&lt;/code&gt; | Last two books 
+&lt;code&gt;$..book\[2:\]&lt;/code&gt; | Book number two from tail 
+&lt;code&gt;$..book\[?(@.isbn)\]&lt;/code&gt; | All books with an ISBN number 
+&lt;code&gt;$.store.book\[?(@.price &amp;lt; 10)\]&lt;/code&gt; | All books in store cheaper than 10 
+&lt;code&gt;$..book\[?(@.price &amp;lt;= $\['expensive'\])\]&lt;/code&gt; | All books in store that are not "expensive" 
+&lt;code&gt;$..book\[?(@.author =~ /.*REES/i)\]&lt;/code&gt; | All books matching regex (ignore case) 
+&lt;code&gt;$..*&lt;/code&gt; | Give me every thing 
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stephan Zavrel</dc:creator><pubDate>Wed, 05 Aug 2015 15:12:12 -0000</pubDate><guid>https://sourceforge.netaec1d58e11c0b9679d4c82356b74e01ae1658024</guid></item><item><title>ProfileAPI modified by Stephan Zavrel</title><link>https://sourceforge.net/p/easyrec/wiki/ProfileAPI/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -0,0 +1,70 @@
+[TOC]
+# General information
+The profile API allows you to add additional meta data (i.e. a profile) in JSON format to items which can be used for analysis in more sophisticated recommendation strategies.
+
+## HTTP functions
+Other than all the traditional REST style easyrec APIs (actions, recommendations,rankings,...) which all use HTTP GET requestes exclusively, the new JSON profile API uses the appropriate HTTP functions for its calls, so please pay attention to this fact when reading the documentation below.
+
+## MIME Types
+All API calls accept data sent in either *application/json* or *application/x-www-form-urlencoded*.  
+
+# JSONPath
+
+The API allows for storing of complete profiles as well as adding and retrieving specific JSON fields to/from already existing profiles. To address specific fields in a profile JSONPath notations are used. You can find a description of [JSONPath here](http://goessner.net/articles/JsonPath/) and specifics of the implementation used in easyrec at [Jayway JSONPath](https://github.com/jayway/JsonPath). To give you an easier start we copied some path examples from the latter source.
+
+## JSONPath Operators
+operator | description 
+----------|-----------
+&lt;code&gt;$&lt;/code&gt; | The root element to query. This starts all path expressions.
+&lt;code&gt;@&lt;/code&gt; | The current node being processed by a filter predicate
+&lt;code&gt;*&lt;/code&gt; | Wildcard. Available anywhere a name or numeric are required.
+&lt;code&gt;..&lt;/code&gt; | Deep scan. Available anywhere a name is required.
+&lt;code&gt;.&amp;lt;name&amp;gt;&lt;/code&gt; | Dot-notated child
+&lt;code&gt;\['&amp;lt;name&amp;gt;' (, '&amp;lt;name&amp;gt;')\]&lt;/code&gt; | Bracket-notated child or children
+&lt;code&gt;\[&amp;lt;number&amp;gt; (, &amp;lt;number&amp;gt;)\]&lt;/code&gt; | Array index or indexes
+&lt;code&gt;\[start:end\]&lt;/code&gt; | Array slice operator
+&lt;code&gt;\[?(&amp;lt;expression&amp;gt;)\]&lt;/code&gt; | Filter expression. Expression must evaluate to a boolean value.
+
+## Path Examples
+
+Given the json
+&lt;pre&gt;&lt;code&gt; {
+    "store": {
+        "book": \[
+            {
+                "category": "reference",
+                "author": "Nigel Rees",
+                "title": "Sayings of the Century",
+                "price": 8.95
+            },
+            {
+                "category": "fiction",
+                "author": "Evelyn Waugh",
+                "title": "Sword of Honour",
+                "price": 12.99
+            },
+            {
+                "category": "fiction",
+                "author": "Herman Melville",
+                "title": "Moby Dick",
+                "isbn": "0-553-21311-3",
+                "price": 8.99
+            },
+            {
+                "category": "fiction",
+                "author": "J. R. R. Tolkien",
+                "title": "The Lord of the Rings",
+                "isbn": "0-395-19395-8",
+                "price": 22.99
+            }
+        \],
+        "bicycle": {
+            "color": "red",
+            "price": 19.95
+        }
+    },
+    "expensive": 10
+    }&lt;/code&gt;&lt;/pre&gt;
+
+JsonPath | Result
+---------|---------
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stephan Zavrel</dc:creator><pubDate>Wed, 05 Aug 2015 15:03:21 -0000</pubDate><guid>https://sourceforge.netdc0007f24a02a7be3641fa772fbbceb821d73af3</guid></item><item><title>ProfileAPI modified by Stephan Zavrel</title><link>https://sourceforge.net/p/easyrec/wiki/ProfileAPI/</link><description/><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Stephan Zavrel</dc:creator><pubDate>Tue, 04 Aug 2015 13:18:12 -0000</pubDate><guid>https://sourceforge.net929bc1e1dd423f639c93ac37b84dea542d758854</guid></item></channel></rss>