| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
| <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en" dir="ltr"> |
| <head> |
| <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> |
| <meta name="keywords" content="SMILA/Documentation/Processing/JSON REST API for BPEL pipelines,SMILA/Documentation/BPEL Workflow Processor,SMILA/Documentation/JettyHttpServer,SMILA/Documentation/Using The ReST API,SMILA/Documentation for 5 Minutes to Success" /> |
| <link rel="shortcut icon" href="http://wiki.eclipse.org/SMILA/Documentation/Processing/favicon.ico" /> |
| <link rel="search" type="application/opensearchdescription+xml" href="http://wiki.eclipse.org/opensearch_desc.php" title="Eclipsepedia (English)" /> |
| <link rel="alternate" type="application/rss+xml" title="Eclipsepedia RSS Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&feed=rss" /> |
| <link rel="alternate" type="application/atom+xml" title="Eclipsepedia Atom Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&feed=atom" /> |
| |
| |
| <title>SMILA/Documentation/Processing/JSON REST API for BPEL pipelines - Eclipsepedia</title> |
| |
| <style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "http://wiki.eclipse.org/skins/eclipsenova/novaWide.css?116"; /*]]>*/</style> |
| <link rel="stylesheet" type="text/css" media="print" href="http://wiki.eclipse.org/skins/eclipsenova/eclipsenovaPrint.css?116" /> |
| <link rel="stylesheet" type="text/css" media="handheld" href="http://wiki.eclipse.org/skins/eclipsenova/handheld.css?116" /> |
| <link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/header.css" media="screen" /> |
| <link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/tabs.css" media="screen" /> |
| <link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/visual.css" media="screen" /> |
| <link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/layout.css" media="screen" /> |
| <link rel="stylesheet" type="text/css" href="http://wiki.eclipse.org/skins/eclipsenova/Nova/css/footer.css" media="screen" /> |
| <!--[if IE]><link rel="stylesheet" type="text/css" href="/skins/eclipsenova/IEpngfix.css" media="screen" /><![endif]--> |
| <!--[if lt IE 5.5000]><style type="text/css">@import "/skins/eclipsenova/IE50Fixes.css?116";</style> <![endif]--> |
| <!--[if IE 5.5000]><style type="text/css">@import "/skins/eclipsenova/IE55Fixes.css?116";</style><![endif]--> |
| <!--[if IE 6]><style type="text/css">@import "/skins/eclipsenova/IE60Fixes.css?116";</style><![endif]--> |
| <!--[if IE 7]><style type="text/css">@import "/skins/eclipsenova/IE70Fixes.css?116";</style><![endif]--> |
| <!--[if lt IE 7]><script type="text/javascript" src="/skins/common/IEFixes.js?116"></script> |
| <meta http-equiv="imagetoolbar" content="no" /><![endif]--> |
| <script type= "text/javascript">/*<![CDATA[*/ |
| var skin = "eclipsenova"; |
| var stylepath = "/skins"; |
| var wgArticlePath = "/$1"; |
| var wgScriptPath = ""; |
| var wgScript = "/index.php"; |
| var wgServer = "http://wiki.eclipse.org"; |
| var wgCanonicalNamespace = ""; |
| var wgCanonicalSpecialPageName = false; |
| var wgNamespaceNumber = 0; |
| var wgPageName = "SMILA/Documentation/Processing/JSON_REST_API_for_BPEL_pipelines"; |
| var wgTitle = "SMILA/Documentation/Processing/JSON REST API for BPEL pipelines"; |
| var wgAction = "view"; |
| var wgRestrictionEdit = []; |
| var wgRestrictionMove = []; |
| var wgArticleId = "31279"; |
| var wgIsArticle = true; |
| var wgUserName = null; |
| var wgUserGroups = null; |
| var wgUserLanguage = "en"; |
| var wgContentLanguage = "en"; |
| var wgBreakFrames = false; |
| var wgCurRevisionId = "286737"; |
| var wgVersion = "1.12.0"; |
| var wgEnableAPI = true; |
| var wgEnableWriteAPI = false; |
| /*]]>*/</script> |
| |
| <script type="text/javascript" src="http://wiki.eclipse.org/skins/common/wikibits.js?116"><!-- wikibits js --></script> |
| |
| <!-- Performance mods similar to those for bug 166401 --> |
| <script type="text/javascript" src="http://wiki.eclipse.org/index.php?title=-&action=raw&gen=js&useskin=eclipsenova"><!-- site js --></script> |
| |
| <!-- Head Scripts --> |
| <script type="text/javascript" src="http://wiki.eclipse.org/skins/common/ajax.js?116"></script> |
| <style type="text/css">/*<![CDATA[*/ |
| .source-javascript {line-height: normal; font-size: medium;} |
| .source-javascript li {line-height: normal;} |
| /** |
| * GeSHi Dynamically Generated Stylesheet |
| * -------------------------------------- |
| * Dynamically generated stylesheet for javascript |
| * CSS class: source-javascript, CSS id: |
| * GeSHi (C) 2004 - 2007 Nigel McNie (http://qbnz.com/highlighter) |
| */ |
| .source-javascript .de1, .source-javascript .de2 {font-family: 'Courier New', Courier, monospace; font-weight: normal;} |
| .source-javascript {} |
| .source-javascript .head {} |
| .source-javascript .foot {} |
| .source-javascript .imp {font-weight: bold; color: red;} |
| .source-javascript .ln-xtra {color: #cc0; background-color: #ffc;} |
| .source-javascript li {font-family: 'Courier New', Courier, monospace; color: black; font-weight: normal; font-style: normal;} |
| .source-javascript li.li2 {font-weight: bold;} |
| .source-javascript .kw1 {color: #000066; font-weight: bold;} |
| .source-javascript .kw2 {color: #003366; font-weight: bold;} |
| .source-javascript .kw3 {color: #000066;} |
| .source-javascript .co1 {color: #009900; font-style: italic;} |
| .source-javascript .coMULTI {color: #009900; font-style: italic;} |
| .source-javascript .es0 {color: #000099; font-weight: bold;} |
| .source-javascript .br0 {color: #66cc66;} |
| .source-javascript .st0 {color: #3366CC;} |
| .source-javascript .nu0 {color: #CC0000;} |
| .source-javascript .me1 {color: #006600;} |
| .source-javascript .sc0 {} |
| .source-javascript .sc1 {} |
| .source-javascript .sc2 {} |
| .source-javascript .sc3 {} |
| .source-javascript .re0 {color: #0066FF;} |
| |
| /*]]>*/ |
| </style> |
| <style type="text/css">/*<![CDATA[*/ |
| @import "http://wiki.eclipse.org/index.php?title=MediaWiki:Geshi.css&usemsgcache=yes&action=raw&ctype=text/css&smaxage=18000"; |
| /*]]>*/ |
| </style><link rel="stylesheet" type="text/css" href="JSON_REST_API_for_BPEL_pipelines.html" /> </head> |
| <body class="mediawiki ns-0 ltr page-SMILA_Documentation_Processing_JSON_REST_API_for_BPEL_pipelines"> |
| <div id="globalWrapper"> |
| |
| |
| <div id="column-one"> |
| <!-- Eclipse Additions for the Top Nav start here M. Ward--> |
| |
| <div id="header"> |
| <div id="header-graphic"> |
| <img src="http://wiki.eclipse.org/skins/eclipsenova/eclipse.png" alt="Eclipse Wiki"> |
| </div> |
| <!-- Pulled 101409 Mward --> |
| |
| <div class="portlet" id="p-personal"> |
| <div class="pBody"> |
| <ul> |
| <li id="pt-login"><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&returnto=SMILA/Documentation/Processing/JSON_REST_API_for_BPEL_pipelines">Log in</a></li> |
| </ul> |
| </div> |
| </div> |
| |
| <div id="header-icons"> |
| <div id="sites"> |
| <ul id="sitesUL"> |
| <li><a href="http://www.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/eclipseIcon.png" width="28" height="28" alt="Eclipse Foundation" title="Eclipse Foundation" /><div>Eclipse Foundation</div></a></li> |
| <li><a href="http://marketplace.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/marketplace.png" width="28" height="28" alt="Eclipse Marketplace" title="Eclipse Marketplace" /><div>Eclipse Marketplace</div></a></li> |
| <li><a href="https://bugs.eclipse.org/bugs"><img src="http://dev.eclipse.org/custom_icons/system-search-bw.png" width="28" height="28" alt="Bugzilla" title="Bugzilla" /><div>Bugzilla</div></a></li> |
| <li><a href="http://live.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/audio-input-microphone-bw.png" width="28" height="28" alt="Live" title="Live" /><div>Eclipse Live</div></a></li> |
| <li><a href="http://planeteclipse.org"><img src="http://dev.eclipse.org/large_icons/devices/audio-card.png" width="28" height="28" alt="PlanetEclipse" title="Planet" /><div>Planet Eclipse</div></a></li> |
| <li><a href="http://portal.eclipse.org"><img src="http://dev.eclipse.org/custom_icons/preferences-system-network-proxy-bw.png" width="28" height="28" alt="Portal" title="Portal" /><div>My Foundation Portal</div></a></li> |
| </ul> |
| </div> |
| </div> |
| </div> |
| <!-- NEW HEADER STUFF HERE --> |
| <div id="header-menu"> |
| <div id="header-nav"> |
| <ul> <li><a class="first_one" href="http://wiki.eclipse.org/" target="_self">Home</a></li> <li><a href="http://www.eclipse.org/downloads/" target="_self">Downloads</a></li> |
| <li><a href="http://www.eclipse.org/users/" target="_self">Users</a></li> |
| <li><a href="http://www.eclipse.org/membership/" target="_self">Members</a></li> |
| <li><a href="http://wiki.eclipse.org/index.php/Development_Resources" target="_self">Committers</a></li> |
| <li><a href="http://www.eclipse.org/resources/" target="_self">Resources</a></li> |
| <li><a href="http://www.eclipse.org/projects/" target="_self">Projects</a></li> |
| <li><a href="http://www.eclipse.org/org/" target="_self">About Us</a></li> |
| </ul> |
| </div> |
| <div id="header-utils"> |
| <!-- moved the search window here --> |
| <form action="http://wiki.eclipse.org/Special:Search" > |
| <input class="input" name="search" type="text" accesskey="f" value="" /> |
| <input type='submit' onclick="this.submit();" name="go" id="searchGoButton" class="button" title="Go to a page with this exact name if one exists" value="Go" /> |
| <input type='submit' onclick="this.submit();" name="fulltext" class="button" id="mw-searchButton" title="Search Eclipsepedia for this text" value="Search" /> |
| </form> |
| </div> |
| </div> |
| |
| |
| <!-- Eclipse Additions for the Header stop here --> |
| <!-- Additions and mods for leftside nav Start here --> |
| |
| <!--Started nav rip here--> |
| <!-- these are the nav controls main page, changes etc --> |
| <div id="novaContent" class="faux"> |
| <div id="leftcol"> |
| <ul id="leftnav"> |
| <!-- these are the page controls, edit history etc --> |
| <li class="separator"><a class="separator">Navigation   </li> |
| <li id="n-mainpage"><a href="http://wiki.eclipse.org/Main_Page">Main Page</a></li> |
| <li id="n-portal"><a href="http://wiki.eclipse.org/Eclipsepedia:Community_Portal">Community portal</a></li> |
| <li id="n-currentevents"><a href="http://wiki.eclipse.org/Eclipsepedia:Current_events">Current events</a></li> |
| <li id="n-recentchanges"><a href="http://wiki.eclipse.org/Special:Recentchanges">Recent changes</a></li> |
| <li id="n-randompage"><a href="http://wiki.eclipse.org/Special:Random">Random page</a></li> |
| <li id="n-help"><a href="http://wiki.eclipse.org/Help:Contents">Help</a></li> |
| <li class="separator"><a class="separator">Toolbox   </a></li> |
| |
| <li id="t-whatlinkshere"><a href="http://wiki.eclipse.org/Special:Whatlinkshere/SMILA/Documentation/Processing/JSON_REST_API_for_BPEL_pipelines">What links here</a></li> |
| <li id="t-recentchangeslinked"><a href="http://wiki.eclipse.org/Special:Recentchangeslinked/SMILA/Documentation/Processing/JSON_REST_API_for_BPEL_pipelines">Related changes</a></li> |
| <!-- This is the toolbox section --> |
| <li id="t-upload"><a href="http://wiki.eclipse.org/Special:Upload">Upload file</a></li> |
| <li id="t-specialpages"><a href="http://wiki.eclipse.org/Special:Specialpages">Special pages</a></li> |
| <li id="t-print"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Processing/JSON_REST_API_for_BPEL_pipelines&printable=yes">Printable version</a></li> <li id="t-permalink"><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Processing/JSON_REST_API_for_BPEL_pipelines&oldid=286737">Permanent link</a></li> </ul> |
| </div> |
| |
| |
| <!-- Additions and mods for leftside nav End here --> |
| |
| |
| <div id="column-content"> |
| <div id="content"> |
| <a name="top" id="top"></a> |
| |
| <div id="tabs"> |
| <ul class="primary"> |
| <li class="active"><a href="JSON_REST_API_for_BPEL_pipelines.html"><span class="tab">Page</span></a></li> |
| <li><a href="http://wiki.eclipse.org/index.php?title=Talk:SMILA/Documentation/Processing/JSON_REST_API_for_BPEL_pipelines&action=edit"><span class="tab">Discussion</span></a></li> |
| <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Processing/JSON_REST_API_for_BPEL_pipelines&action=edit"><span class="tab">View source</span></a></li> |
| <li><a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Processing/JSON_REST_API_for_BPEL_pipelines&action=history"><span class="tab">History</span></a></li> |
| <li><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&returnto=SMILA/Documentation/Processing/JSON REST API for BPEL pipelines"><span class="tab">Edit</span></a></li> |
| </ul> |
| </div> |
| |
| |
| <script type="text/javascript"> if (window.isMSIE55) fixalpha(); </script> |
| <h1 class="firstHeading">SMILA/Documentation/Processing/JSON REST API for BPEL pipelines</h1> |
| <div id="bodyContent"> |
| <h3 id="siteSub">From Eclipsepedia</h3> |
| <div id="contentSub"><span class="subpages">< <a href="../../../SMILA.html" title="SMILA">SMILA</a> | <a href="../../Documentation.1.html" title="SMILA/Documentation">Documentation</a></span></div> |
| <div id="jump-to-nav">Jump to: <a href="JSON_REST_API_for_BPEL_pipelines.html#column-one">navigation</a>, <a href="JSON_REST_API_for_BPEL_pipelines.html#searchInput">search</a></div> <!-- start content --> |
| <table id="toc" class="toc" summary="Contents"><tr><td><div id="toctitle"><h2>Contents</h2></div> |
| <ul> |
| <li class="toclevel-1"><a href="JSON_REST_API_for_BPEL_pipelines.html#JSON_REST_API_for_SMILA_BPEL_pipelines"><span class="tocnumber">1</span> <span class="toctext">JSON REST API for SMILA BPEL pipelines</span></a> |
| <ul> |
| <li class="toclevel-2"><a href="JSON_REST_API_for_BPEL_pipelines.html#Reference"><span class="tocnumber">1.1</span> <span class="toctext">Reference</span></a> |
| <ul> |
| <li class="toclevel-3"><a href="JSON_REST_API_for_BPEL_pipelines.html#Get_Pipeline_Overview_or_Add.2FUpdate_a_Pipeline"><span class="tocnumber">1.1.1</span> <span class="toctext">Get Pipeline Overview or Add/Update a Pipeline</span></a></li> |
| <li class="toclevel-3"><a href="JSON_REST_API_for_BPEL_pipelines.html#Get_or_Delete_a_Pipeline_Definition"><span class="tocnumber">1.1.2</span> <span class="toctext">Get or Delete a Pipeline Definition</span></a></li> |
| <li class="toclevel-3"><a href="JSON_REST_API_for_BPEL_pipelines.html#Invoke_a_Pipeline"><span class="tocnumber">1.1.3</span> <span class="toctext">Invoke a Pipeline</span></a> |
| <ul> |
| <li class="toclevel-4"><a href="JSON_REST_API_for_BPEL_pipelines.html#Current_Limitations"><span class="tocnumber">1.1.3.1</span> <span class="toctext">Current Limitations</span></a></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| <li class="toclevel-2"><a href="JSON_REST_API_for_BPEL_pipelines.html#Example_Walkthrough"><span class="tocnumber">1.2</span> <span class="toctext">Example Walkthrough</span></a> |
| <ul> |
| <li class="toclevel-3"><a href="JSON_REST_API_for_BPEL_pipelines.html#Accessing_Pipelines"><span class="tocnumber">1.2.1</span> <span class="toctext">Accessing Pipelines</span></a></li> |
| <li class="toclevel-3"><a href="JSON_REST_API_for_BPEL_pipelines.html#Defining_Pipelines"><span class="tocnumber">1.2.2</span> <span class="toctext">Defining Pipelines</span></a></li> |
| </ul> |
| </li> |
| </ul> |
| </li> |
| </ul> |
| </td></tr></table><script type="text/javascript"> if (window.showTocToggle) { var tocShowText = "show"; var tocHideText = "hide"; showTocToggle(); } </script> |
| <a name="JSON_REST_API_for_SMILA_BPEL_pipelines"></a><h2> <span class="mw-headline"> JSON REST API for SMILA BPEL pipelines </span></h2> |
| <p>SMILA now has an HTTP REST API that allows managing and invoking BPEL processing workflows. |
| </p> |
| <a name="Reference"></a><h3> <span class="mw-headline"> Reference </span></h3> |
| <p>Note: The trailing slash in URLs is optional. |
| </p> |
| <a name="Get_Pipeline_Overview_or_Add.2FUpdate_a_Pipeline"></a><h4> <span class="mw-headline"> Get Pipeline Overview or Add/Update a Pipeline </span></h4> |
| <p>GET: Returns a list of all deployed BPEL pipelines including URLs to access their definition. |
| </p><p>POST: Adds or updates a BPEL pipeline. Returns an object containing the timestamp of the creation/modification and a URL to the pipeline definition. |
| </p><p><b>Supported operations:</b> |
| </p> |
| <ul><li>GET: Gets a list of all available BPEL pipelines. |
| </li><li>POST: Adds or updates (if already existing) a BPEL pipeline. The request JSON object consists of a "name" and a "definition" field. The latter contains the pipeline description in BPEL format. If the respective pipeline is in use, the update process will take a little longer. Also, new invocations of this pipeline are blocked until the update is finished (about 100ms usually). |
| </li></ul> |
| <p><b>Usage:</b> |
| </p> |
| <ul><li>URL: <tt>http://<hostname>:8080/smila/pipeline/</tt> |
| </li><li>Allowed methods: |
| <ul><li>GET (no further URL parameters and no request body allowed) |
| </li><li>POST (request body with a "name" and "definition" field is mandatory) |
| </li></ul> |
| </li><li>Response status codes: |
| <ul><li>200 OK: Upon successful execution of GET. |
| </li><li>201 CREATED: Upon successful creation/update of the pipeline. |
| </li><li>400 BAD REQUEST: If you post with an empty body, if you try to update a predefined pipeline, if the request body has syntax errors or the name is invalid. |
| </li><li>500 INTERNAL SERVER ERROR: Any other error. |
| </li></ul> |
| </li></ul> |
| <a name="Get_or_Delete_a_Pipeline_Definition"></a><h4> <span class="mw-headline"> Get or Delete a Pipeline Definition </span></h4> |
| <p>GET: Returns a JSON object containing the definition of the requested pipeline. The object consists of the name of the pipeline and the BPEL XML definition as a single string value. If the pipeline is predefined in the system configuration, the object will also contain a <tt>"readOnly": true</tt> flag. Otherwise, it will contain the <tt>timestamp</tt> of the latest add operation (see above) that created this version of the pipeline. |
| </p><p>DELETE: Deletes the requested BPEL pipeline. |
| </p><p><b>Supported operations:</b> |
| </p> |
| <ul><li>GET: Get a BPEL pipeline definition. |
| </li><li>DELETE: Delete the specified BPEL pipeline. |
| </li></ul> |
| <p><b>Usage:</b> |
| </p> |
| <ul><li>URL: <tt>http://<hostname>:8080/smila/pipeline/<workflow-name>/</tt> |
| </li><li>Allowed methods: |
| <ul><li>GET (no further URL parameters and no request body allowed) |
| </li><li>DELETE (no further URL parameters and no request body allowed) |
| </li></ul> |
| </li><li>Response status codes: |
| <ul><li>200 OK: Upon successful execution for GET and DELETE. If you try to delete a pipeline which does not exist, you will get 200 OK, too. |
| </li><li>404 NOT FOUND: If the specified BPEL pipeline does not exist. |
| </li><li>500 INTERNAL SERVER ERROR: Any other error. |
| </li></ul> |
| </li></ul> |
| <a name="Invoke_a_Pipeline"></a><h4> <span class="mw-headline"> Invoke a Pipeline </span></h4> |
| <p>Process a record with the selected pipeline. Returns the result record as a JSON object. Record attachments are supported by using Multipart POST requests, see <a href="../JettyHttpServer.html#Attachments" title="SMILA/Documentation/JettyHttpServer">SMILA/Documentation/JettyHttpServer#Attachments</a> for details and code example. |
| </p><p><b>Supported operations:</b> |
| </p> |
| <ul><li>GET: Invokes a pipeline where the record to process is specified using URL parameters. |
| </li><li>POST: Invokes a pipeline where the record to process is contained in the request body as JSON (recommended). |
| </li></ul> |
| <p><b>Usage:</b> |
| </p> |
| <ul><li>URL: <tt>http://<hostname>:8080/smila/pipeline/<workflow-name>/process/</tt> |
| </li><li>Allowed methods: |
| <ul><li>POST |
| </li><li>GET |
| </li></ul> |
| </li><li>Response status codes: |
| <ul><li>200 OK: Upon successful execution |
| </li><li>400 BAD REQUEST: In case of empty input records or invalid JSON. |
| </li><li>405 METHOD NOT ALLOWED: In case of an invalid HTTP method (i.e. other than GET or POST). |
| </li><li>500 INTERNAL SERVER ERROR: Other errors, e.g. error during processing. |
| </li></ul> |
| </li></ul> |
| <a name="Current_Limitations"></a><h5> <span class="mw-headline"> Current Limitations </span></h5> |
| <ul><li> Only the first result record is returned, no attachments will be contained. |
| </li><li> The request is executed using a pure transient blackboard, so the records and attachments are not persisted to <tt>RecordStore</tt> and <tt>BinaryStorage</tt>, respectively. |
| </li><li> The name of the pipeline must be a valid name (see <a href="../BPEL_Workflow_Processor.html#Pipeline_definition_using_BPEL" title="SMILA/Documentation/BPEL Workflow Processor">SMILA/Documentation/BPEL Workflow Processor#Pipeline_definition_using_BPEL</a> |
| </li></ul> |
| <a name="Example_Walkthrough"></a><h3> <span class="mw-headline"> Example Walkthrough </span></h3> |
| <div class="messagebox" style="background-color: #def3fe; border: 1px solid #c5d7e0; color: black; padding: 5px; margin: 1ex 0; min-height: 35px; padding-left: 45px;"> |
| <div style="float: left; margin-left: -40px;"><a href="http://wiki.eclipse.org/Image:Note.png" class="image" title="Note.png"><img alt="" src="http://wiki.eclipse.org/images/c/cc/Note.png" width="35" height="35" border="0" /></a></div> |
| <div><b> Some Tool recommendations</b> |
| <p>See <a href="../Using_The_ReST_API.html" title="SMILA/Documentation/Using The ReST API">SMILA/Documentation/Using_The_ReST_API</a> for recommendations on how to use the ReST API manually. |
| </p> |
| For sake of simplicity, the following examples were produced with Resty.<b><br /></div></b> |
| </div> |
| <p>Preparation: Start SMILA and index some documents. E.g. follow the instructions on <a href="../../Documentation_for_5_Minutes_to_Success.html" title="SMILA/Documentation for 5 Minutes to Success">SMILA/Documentation for 5 Minutes to Success</a>. |
| </p> |
| <a name="Accessing_Pipelines"></a><h4> <span class="mw-headline"> Accessing Pipelines </span></h4> |
| <p>Let's start with the overview: |
| </p> |
| <div dir="ltr" style="text-align: left;"><pre class="source-javascript">> resty http:<span class="co1">//localhost:8080</span> |
| http:<span class="co1">//localhost:8080*</span> |
| > GET <span class="re0">/smila/pipeline/</span> |
| <span class="br0">{</span> |
| <span class="st0">"pipelines"</span> : <span class="br0">[</span> <span class="br0">{</span> |
| <span class="st0">"name"</span> : <span class="st0">"AddFeedPipeline"</span>, |
| <span class="st0">"url"</span> : <span class="st0">"http://localhost:8080/smila/pipeline/AddFeedPipeline/"</span> |
| <span class="br0">}</span>, <span class="br0">{</span> |
| <span class="st0">"name"</span> : <span class="st0">"XmlSplitAndAddPipeline"</span>, |
| <span class="st0">"url"</span> : <span class="st0">"http://localhost:8080/smila/pipeline/XmlSplitAndAddPipeline/"</span> |
| <span class="br0">}</span>, <span class="br0">{</span> |
| <span class="st0">"name"</span> : <span class="st0">"DeletePipeline"</span>, |
| <span class="st0">"url"</span> : <span class="st0">"http://localhost:8080/smila/pipeline/DeletePipeline/"</span> |
| <span class="br0">}</span>, <span class="br0">{</span> |
| <span class="st0">"name"</span> : <span class="st0">"SearchPipeline"</span>, |
| <span class="st0">"url"</span> : <span class="st0">"http://localhost:8080/smila/pipeline/SearchPipeline/"</span> |
| <span class="br0">}</span>, <span class="br0">{</span> |
| <span class="st0">"name"</span> : <span class="st0">"AdaptFileCrawlerWorkerOutput"</span>, |
| <span class="st0">"url"</span> : <span class="st0">"http://localhost:8080/smila/pipeline/AdaptFileCrawlerWorkerOutput/"</span> |
| <span class="br0">}</span>, <span class="br0">{</span> |
| <span class="st0">"name"</span> : <span class="st0">"AdaptWebCrawlerWorkerOutput"</span>, |
| <span class="st0">"url"</span> : <span class="st0">"http://localhost:8080/smila/pipeline/AdaptWebCrawlerWorkerOutput/"</span> |
| <span class="br0">}</span>, <span class="br0">{</span> |
| <span class="st0">"name"</span> : <span class="st0">"AddPipeline"</span>, |
| <span class="st0">"url"</span> : <span class="st0">"http://localhost:8080/smila/pipeline/AddPipeline/"</span> |
| <span class="br0">}</span> <span class="br0">]</span> |
| <span class="br0">}</span></pre></div> |
| <p>So we have seven pipelines deployed. Fine. Let's have a look at their definitions: |
| </p> |
| <div dir="ltr" style="text-align: left;"><pre class="source-javascript">> GET <span class="re0">/smila/pipeline/SearchPipeline/</span> |
| <span class="br0">{</span><span class="st0">"name"</span>:<span class="st0">"SearchPipeline"</span>,<span class="st0">"readOnly"</span>:<span class="kw2">true</span>,<span class="st0">"definition"</span>:<span class="st0">"<?xml version=<span class="es0">\"</span>1.0<span class="es0">\"</span> encoding=<span class="es0">\"</span>utf- |
| 8<span class="es0">\"</span> ?><span class="es0">\r</span><span class="es0">\n</span><!--<span class="es0">\r</span><span class="es0">\n</span> * Copyright (c) 2009 empolis GmbH and brox IT Solutions GmbH.<span class="es0">\r</span><span class="es0">\n</span> * All |
| rights reserved. This program and the accompanying materials<span class="es0">\r</span><span class="es0">\n</span> * are made available unde |
| r the terms of the Eclipse Public License v1.0<span class="es0">\r</span><span class="es0">\n</span> * which accompanies this distribution, a |
| nd is available at<span class="es0">\r</span><span class="es0">\n</span> * http://www.eclipse.org/legal/epl-v10.html<span class="es0">\r</span><span class="es0">\n</span> *<span class="es0">\r</span><span class="es0">\n</span> * Contributo |
| rs:<span class="es0">\r</span><span class="es0">\n</span> * Juergen Schumacher (empolis GmbH) - initial design<span class="es0">\r</span><span class="es0">\n</span>--><span class="es0">\r</span><span class="es0">\n</span><process name=<span class="es0">\"</span>Sear |
| chPipeline<span class="es0">\"</span> targetNamespace=<span class="es0">\"</span>http://www.eclipse.org/smila/processor<span class="es0">\"</span><span class="es0">\r</span><span class="es0">\n</span> xmlns=<span class="es0">\"</span>http:// |
| docs.oasis-open.org/wsbpel/2.0/process/executable<span class="es0">\"</span> xmlns:xsd=<span class="es0">\"</span>http://www.w3.org/2001/XMLSc |
| hema<span class="es0">\"</span><span class="es0">\r</span><span class="es0">\n</span> xmlns:proc=<span class="es0">\"</span>http://www.eclipse.org/smila/processor<span class="es0">\"</span> xmlns:rec=<span class="es0">\"</span>http://www.ecl |
| ipse.org/smila/record<span class="es0">\"</span><span class="es0">\r</span><span class="es0">\n</span> xmlns:bpel=<span class="es0">\"</span>http://docs.oasis-open.org/wsbpel/2.0/process/exec |
| utable<span class="es0">\"</span>><span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span> <import location=<span class="es0">\"</span>processor.wsdl<span class="es0">\"</span> namespace=<span class="es0">\"</span>http://www.eclipse.org/sm |
| ila/processor<span class="es0">\"</span><span class="es0">\r</span><span class="es0">\n</span> importType=<span class="es0">\"</span>http://schemas.xmlsoap.org/wsdl/<span class="es0">\"</span> /><span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span> <partnerL |
| inks><span class="es0">\r</span><span class="es0">\n</span> <partnerLink name=<span class="es0">\"</span>Pipeline<span class="es0">\"</span> partnerLinkType=<span class="es0">\"</span>proc:ProcessorPartnerLinkType<span class="es0">\</span> |
| "</span> myRole=\<span class="st0">"service<span class="es0">\"</span> /><span class="es0">\r</span><span class="es0">\n</span> </partnerLinks><span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span> <extensions><span class="es0">\r</span><span class="es0">\n</span> <extension namespa |
| ce=<span class="es0">\"</span>http://www.eclipse.org/smila/processor<span class="es0">\"</span> mustUnderstand=<span class="es0">\"</span>no<span class="es0">\"</span> /><span class="es0">\r</span><span class="es0">\n</span> </extensions><span class="es0">\r</span><span class="es0">\</span> |
| n<span class="es0">\r</span><span class="es0">\n</span> <variables><span class="es0">\r</span><span class="es0">\n</span> <variable name=<span class="es0">\"</span>request<span class="es0">\"</span> messageType=<span class="es0">\"</span>proc:ProcessorMessage<span class="es0">\"</span> / |
| ><span class="es0">\r</span><span class="es0">\n</span> </variables><span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span> <sequence name=<span class="es0">\"</span>SearchPipeline<span class="es0">\"</span>><span class="es0">\r</span><span class="es0">\n</span> <receive name=<span class="es0">\"</span>start |
| <span class="es0">\"</span> partnerLink=<span class="es0">\"</span>Pipeline<span class="es0">\"</span> portType=<span class="es0">\"</span>proc:ProcessorPortType<span class="es0">\"</span><span class="es0">\r</span><span class="es0">\n</span> operation=<span class="es0">\"</span>process |
| <span class="es0">\"</span> variable=<span class="es0">\"</span>request<span class="es0">\"</span> createInstance=<span class="es0">\"</span>yes<span class="es0">\"</span> /><span class="es0">\r</span><span class="es0">\n</span><span class="es0">\r</span><span class="es0">\n</span> <extensionActivity><span class="es0">\r</span><span class="es0">\n</span> <p |
| roc:invokePipelet name=<span class="es0">\"</span>invokeSolrSearchPipelet<span class="es0">\"</span>><span class="es0">\r</span><span class="es0">\n</span> <proc:pipelet class= |
| <span class="es0">\"</span>org.eclipse.smila.solr.search.SolrSearchPipelet<span class="es0">\"</span> /><span class="es0">\r</span><span class="es0">\n</span> <proc:variables input=<span class="es0">\"</span>re |
| quest<span class="es0">\"</span> output=<span class="es0">\"</span>request<span class="es0">\"</span> /><span class="es0">\r</span><span class="es0">\n</span> <proc:configuration><span class="es0">\r</span><span class="es0">\n</span> <rec:Val key=<span class="es0">\"</span> |
| indexname<span class="es0">\"</span>>DefaultCore</rec:Val><span class="es0">\r</span><span class="es0">\n</span> <rec:Map key=<span class="es0">\"</span>_solr.query<span class="es0">\"</span>><span class="es0">\r</span><span class="es0">\n</span> |
| <rec:Seq key=<span class="es0">\"</span>highlighting<span class="es0">\"</span>> <span class="es0">\r</span><span class="es0">\n</span> <rec:Map><span class="es0">\r</span><span class="es0">\n</span> |
| <rec:Val key=<span class="es0">\"</span>attribute<span class="es0">\"</span>>global.solr.params</rec:Val><span class="es0">\r</span><span class="es0">\n</span> |
| <rec:Val key=<span class="es0">\"</span>hl<span class="es0">\"</span> type=<span class="es0">\"</span>boolean<span class="es0">\"</span>>true</rec:Val><span class="es0">\r</span><span class="es0">\n</span> <rec:Val ke |
| y=<span class="es0">\"</span>hl.fl<span class="es0">\"</span>>Content</rec:Val><span class="es0">\r</span><span class="es0">\n</span> <rec:Val key=<span class="es0">\"</span>hl.simple.pre<span class="es0">\"</span>>&lt;b& |
| gt;</rec:Val><span class="es0">\r</span><span class="es0">\n</span> <rec:Val key=<span class="es0">\"</span>hl.simple.post<span class="es0">\"</span>>&lt;/b&gt;</rec:Val> |
| <span class="es0">\r</span><span class="es0">\n</span> </rec:Map><span class="es0">\r</span><span class="es0">\n</span> </rec:Seq> |
| |
| <span class="es0">\r</span><span class="es0">\n</span> </rec:Map> <span class="es0">\r</span><span class="es0">\n</span> </proc:configuration><span class="es0">\r</span><span class="es0">\n</span> </p |
| roc:invokePipelet><span class="es0">\r</span><span class="es0">\n</span> </extensionActivity><span class="es0">\r</span><span class="es0">\n</span> <span class="es0">\r</span><span class="es0">\n</span> <reply name=<span class="es0">\"</span>end<span class="es0">\"</span> partnerLin |
| k=<span class="es0">\"</span>Pipeline<span class="es0">\"</span> portType=<span class="es0">\"</span>proc:ProcessorPortType<span class="es0">\"</span> operation=<span class="es0">\"</span>process<span class="es0">\"</span><span class="es0">\r</span><span class="es0">\n</span> variable=<span class="es0">\</span> |
| "</span>request\<span class="st0">" /><span class="es0">\r</span><span class="es0">\n</span> </sequence><span class="es0">\r</span><span class="es0">\n</span></process><span class="es0">\r</span><span class="es0">\n</span>"</span><span class="br0">}</span></pre></div> |
| <p>Whoops, what's this? It's a bit awkward to read because newline and double-quote characters are printed in their JSON-escaped form. In a browser with a "JSONView" extension installed it looks quite readable, e.g. in Chrome: |
| </p><p><a href="http://wiki.eclipse.org/Image:SMILA-bpel-pipeline-in-jsonview-browser.png" class="image" title="Image:SMILA-bpel-pipeline-in-jsonview-browser.png"><img alt="Image:SMILA-bpel-pipeline-in-jsonview-browser.png" src="http://wiki.eclipse.org/images/f/f3/SMILA-bpel-pipeline-in-jsonview-browser.png" width="976" height="680" border="0" /></a> |
| </p><p>That's better. We see that the object has a <tt>readOnly</tt> flag set to true, because it is one of the predefined pipelines in the system configuration. If it was a custom pipeline defined via the API, there would be a <tt>timestamp</tt> attribute at the end of the object. |
| </p><p>Now we try to execute this pipeline: |
| </p> |
| <div dir="ltr" style="text-align: left;"><pre class="source-javascript">> GET <span class="re0">/smila/pipeline/SearchPipeline/process/</span> |
| <span class="br0">{</span> |
| <span class="st0">"message"</span> : <span class="st0">"Cannot process an empty record."</span> |
| <span class="br0">}</span> |
| > POST <span class="re0">/smila/pipeline/SearchPipeline/process/</span> |
| <span class="br0">{</span> |
| <span class="st0">"message"</span> : <span class="st0">"Cannot process an empty record."</span> |
| <span class="br0">}</span></pre></div> |
| So this did not work, as expected. In the response headers you can see the error code returned: <div dir="ltr" style="text-align: left;"><pre class="source-javascript">> POST <span class="re0">/smila/pipeline/SearchPipeline/process/</span> -v |
| ... |
| < HTTP/<span class="nu0">1.1</span> <span class="nu0">400</span> Bad Request |
| ... |
| <span class="br0">{</span> |
| <span class="st0">"message"</span> : <span class="st0">"Cannot process an empty record."</span> |
| <span class="br0">}</span></pre></div> |
| <p>So we add a query attribute: |
| </p> |
| <div dir="ltr" style="text-align: left;"><pre class="source-javascript">> POST <span class="re0">/smila/pipeline/SearchPipeline/process/</span> <span class="st0">'{ "query": "SMILA" }'</span> |
| ... |
| < HTTP/<span class="nu0">1.1</span> <span class="nu0">500</span> Server Error |
| ... |
| <span class="br0">{</span> |
| <span class="st0">"message"</span> : <span class="st0">"Error processing BPEL workflow SearchPipeline: Invocation of pipeline element SearchPipeline/search failed: Error processing message SearchPipeline-7afe423a-749c-4492-aa66-38ce37dba672<span class="es0">\n</span>caused by: Invocation of pipeline element SearchPipeline/search failed: Error processing message SearchPipeline-7afe423a-749c-4492-aa66-38ce37dba672<span class="es0">\n</span>caused by: no single value for required parameter QueryAttribute"</span> |
| <span class="br0">}</span></pre></div> |
| <p>This time the LuceneSearchPipelet complains about a missing parameter. So let's add it: |
| </p> |
| <div dir="ltr" style="text-align: left;"><pre class="source-javascript">> POST <span class="re0">/smila/pipeline/SearchPipeline/process/</span> <span class="st0">'{ |
| "query": "SMILA", |
| "QueryAttribute": "Content" }'</span> |
| <span class="br0">{</span> |
| <span class="st0">"query"</span> : <span class="st0">"SMILA"</span>, |
| <span class="st0">"QueryAttribute"</span> : <span class="st0">"Content"</span>, |
| <span class="st0">"_recordid"</span> : <span class="st0">"SearchPipeline-5c2d3f3f-1e56-4362-aa4c-74aa5fa9d6e8"</span>, |
| <span class="st0">"count"</span> : <span class="nu0">58</span>, |
| <span class="st0">"indexSize"</span> : <span class="nu0">115</span>, |
| <span class="st0">"records"</span> : <span class="br0">[</span> <span class="br0">{</span> |
| <span class="st0">"_recordid"</span> : <span class="st0">"feeds:<Uri=tag:search.twitter.com,2005:69739397733560320>"</span>, |
| <span class="st0">"_source"</span> : <span class="st0">"feeds"</span>, |
| <span class="st0">"_weight"</span> : <span class="nu0">0.84</span> |
| <span class="br0">}</span>, <span class="br0">{</span> |
| <span class="st0">"_recordid"</span> : <span class="st0">"feeds:<Uri=tag:search.twitter.com,2005:69960011966713856>"</span>, |
| <span class="st0">"_source"</span> : <span class="st0">"feeds"</span>, |
| <span class="st0">"_weight"</span> : <span class="nu0">0.73</span> |
| <span class="br0">}</span>, |
| ... |
| <span class="br0">]</span> <span class="br0">}</span> |
| <span class="br0">}</span></pre></div> |
| <p>A successful search ... but we probably want to see a bit more information. So we add values for the parameter <tt>resultAttributes</tt>: |
| </p> |
| <div dir="ltr" style="text-align: left;"><pre class="source-javascript">> POST <span class="re0">/smila/pipeline/SearchPipeline/process/</span> <span class="st0">'{ |
| "query": "SMILA", |
| "QueryAttribute": "Content", |
| "resultAttributes": [ "Title", "Author", "LastModifiedDate" ] }'</span> |
| <span class="br0">{</span> |
| <span class="st0">"query"</span> : <span class="st0">"SMILA"</span>, |
| <span class="st0">"QueryAttribute"</span> : <span class="st0">"Content"</span>, |
| <span class="st0">"resultAttributes"</span> : <span class="br0">[</span> <span class="st0">"Title"</span>, <span class="st0">"Author"</span>, <span class="st0">"LastModifiedDate"</span> <span class="br0">]</span>, |
| <span class="st0">"_recordid"</span> : <span class="st0">"SearchPipeline-2201c83a-a9b6-4cfe-a62e-6ec8ffe113ca"</span>, |
| <span class="st0">"count"</span> : <span class="nu0">58</span>, |
| <span class="st0">"indexSize"</span> : <span class="nu0">115</span>, |
| <span class="st0">"records"</span> : <span class="br0">[</span> <span class="br0">{</span> |
| <span class="st0">"_recordid"</span> : <span class="st0">"feeds:<Uri=tag:search.twitter.com,2005:69739397733560320>"</span>, |
| <span class="st0">"_source"</span> : <span class="st0">"feeds"</span>, |
| <span class="st0">"_weight"</span> : <span class="nu0">0.84</span>, |
| <span class="st0">"Title"</span> : <span class="st0">"@AbrarAlAdwani smila 3alech. Latwaswiseen"</span>, |
| <span class="st0">"Author"</span> : <span class="st0">"dee_the_bee (Dalalee Boland)"</span>, |
| <span class="st0">"LastModifiedDate"</span> : <span class="st0">"2011-05-15T14:22:22.000+0200"</span> |
| <span class="br0">}</span>, <span class="br0">{</span> |
| <span class="st0">"_recordid"</span> : <span class="st0">"feeds:<Uri=tag:search.twitter.com,2005:69960011966713856>"</span>, |
| <span class="st0">"_source"</span> : <span class="st0">"feeds"</span>, |
| <span class="st0">"_weight"</span> : <span class="nu0">0.73</span>, |
| <span class="st0">"Title"</span> : <span class="st0">"Finally found something to smila bout :)"</span>, |
| <span class="st0">"Author"</span> : <span class="st0">"MIGUELALMENDRAL (Miguel FG Almendral)"</span>, |
| <span class="st0">"LastModifiedDate"</span> : <span class="st0">"2011-05-16T04:59:01.000+0200"</span> |
| <span class="br0">}</span>, |
| ... |
| <span class="br0">]</span> <span class="br0">}</span> |
| <span class="br0">}</span></pre></div> |
| <p>Awesome! In the same way you can add more parameters as you need: |
| </p> |
| <div dir="ltr" style="text-align: left;"><pre class="source-javascript">> POST <span class="re0">/smila/pipeline/SearchPipeline/process/</span> <span class="st0">'{ |
| "query": "SMILA", |
| "QueryAttribute": "Content", |
| "resultAttributes": [ "Title", "Author", "LastModifiedDate" ], |
| "maxcount": 1, "offset": 42, "highlight": "Content" }'</span> |
| <span class="br0">{</span> |
| <span class="st0">"query"</span> : <span class="st0">"SMILA"</span>, |
| <span class="st0">"QueryAttribute"</span> : <span class="st0">"Content"</span>, |
| <span class="st0">"resultAttributes"</span> : <span class="br0">[</span> <span class="st0">"Title"</span>, <span class="st0">"Author"</span>, <span class="st0">"LastModifiedDate"</span> <span class="br0">]</span>, |
| <span class="st0">"maxcount"</span> : <span class="nu0">1</span>, |
| <span class="st0">"offset"</span> : <span class="nu0">42</span>, |
| <span class="st0">"highlight"</span> : <span class="st0">"Content"</span>, |
| <span class="st0">"_recordid"</span> : <span class="st0">"SearchPipeline-f2a53434-36b1-4e25-a716-f8c02fba5ecd"</span>, |
| <span class="st0">"count"</span> : <span class="nu0">58</span>, |
| <span class="st0">"indexSize"</span> : <span class="nu0">115</span>, |
| <span class="st0">"records"</span> : <span class="br0">[</span> <span class="br0">{</span> |
| <span class="st0">"_recordid"</span> : <span class="st0">"feeds:<Uri=http://www.eclipse.org/forums/index.php/mv/msg/206311/660699/#msg_660699>"</span>, |
| <span class="st0">"_source"</span> : <span class="st0">"feeds"</span>, |
| <span class="st0">"_weight"</span> : <span class="nu0">0.19</span>, |
| <span class="st0">"Title"</span> : <span class="st0">"Re: New SMILA tryout"</span>, |
| <span class="st0">"Author"</span> : <span class="st0">"Andreas Weber"</span>, |
| <span class="st0">"_highlight"</span> : <span class="br0">{</span> |
| <span class="st0">"Content"</span> : <span class="br0">{</span> |
| <span class="st0">"text"</span> : <span class="st0">"<br /><span class="es0">\n</span>&#62;<br /><span class="es0">\n</span>&#62; I've done all standard steps as we do when creating a new<br /><span class="es0">\n</span>&#62; <b>SMILA</b>-workspace (and as described...-workspace (and as described on the <b>SMILA</b> website - dont know the<br... website - dont know the<br /><span class="es0">\n</span>&#62; exact name right now):<br /><span class="es0">\n</span>&#62;<br /><span class="es0">\n</span>&#62;<br /><span class="es0">\n</span>&#62; check out from eclipse SVN<br /><span class="es0">\n</span>&#62; add a new Target Platform with path to the <b>SMILA</b> bundles and to eclipse<br..."</span> |
| <span class="br0">}</span> |
| <span class="br0">}</span> |
| <span class="br0">}</span> <span class="br0">]</span> |
| <span class="br0">}</span></pre></div> |
| <p>You can also use GET and URL parameters to invoke the pipeline, just enter something like this in the address line of your favorite browser: |
| </p><p><tt><a href="http://localhost:8080/smila/pipeline/SearchPipeline/process?query=SMILA&QueryAttribute=Content" class="external free" title="http://localhost:8080/smila/pipeline/SearchPipeline/process?query=SMILA&QueryAttribute=Content" rel="nofollow">http://localhost:8080/smila/pipeline/SearchPipeline/process?query=SMILA&QueryAttribute=Content</a></tt> |
| </p><p>However, this gets inconvenient when you want to add lots of parameters and attributes. |
| </p> |
| <a name="Defining_Pipelines"></a><h4> <span class="mw-headline"> Defining Pipelines </span></h4> |
| <p>To define a new pipeline (or update it) you POST a JSON containing the pipeline name and BPEL definition to <code>/smila/pipeline</code>. E.g. copy the output of the <code>GET /smila/pipeline/SearchPipeline</code> command and rename the pipeline to "SearchPipeline2" like this: |
| </p> |
| <div dir="ltr" style="text-align: left;"><pre class="source-javascript">> POST <span class="re0">/smila/pipeline/</span> <span class="st0">'{ |
| "name" : "SearchPipeline2", |
| "definition" : "<?xml version=<span class="es0">\"</span>1.0<span class="es0">\"</span> ?><span class="es0">\r</span><span class="es0">\n</span><process name=<span class="es0">\"</span>SearchPipeline2<span class="es0">\"</span> ..." |
| }'</span> |
| <span class="br0">{</span> |
| <span class="st0">"name"</span> : <span class="st0">"SearchPipeline2"</span>, |
| <span class="st0">"timestamp"</span> : <span class="st0">"2011-08-26T13:54:34.451+0200"</span>, |
| <span class="st0">"url"</span> : <span class="st0">"http://localhost:8080/smila/pipeline/SearchPipeline2/"</span> |
| <span class="br0">}</span></pre></div> |
| <p>If you want to push an own BPEL definition, take care of escaping linefeed (\r), newline (\n) and quotes (\") characters, or the JSON code will not be valid. |
| </p><p>The response contains the name, a creation timestamp and an URL to read the pipeline definition again. If you use this, you will see that the response will also contain the timestamp, but no readOnly flag: |
| </p> |
| <div dir="ltr" style="text-align: left;"><pre class="source-javascript">> GET <span class="re0">/smila/pipeline/SearchPipeline2/</span> |
| <span class="br0">{</span> |
| <span class="st0">"name"</span> : <span class="st0">"SearchPipeline2"</span>, |
| <span class="st0">"definition"</span> : <span class="st0">"<?xml version=<span class="es0">\"</span>1.0<span class="es0">\"</span> ?><span class="es0">\r</span><span class="es0">\n</span><process name=<span class="es0">\"</span>SearchPipeline2<span class="es0">\"</span> ..."</span>, |
| <span class="st0">"timestamp"</span> : <span class="st0">"2011-08-26T13:54:34.451+0200"</span> |
| <span class="br0">}</span></pre></div> |
| <p>Updating the workflow would work just the same. The timestamp can be used in modelling tools to ensure that different users do not overwrite changes made by another user. |
| </p><p>The new pipeline should now also appears in the list of pipelines: |
| </p> |
| <div dir="ltr" style="text-align: left;"><pre class="source-javascript">> GET <span class="re0">/smila/pipeline/</span> |
| <span class="br0">{</span> |
| <span class="st0">"pipelines"</span> : <span class="br0">[</span> <span class="br0">{</span> |
| ..., |
| <span class="br0">{</span> |
| <span class="st0">"name"</span> : <span class="st0">"SearchPipeline"</span>, |
| <span class="st0">"url"</span> : <span class="st0">"http://localhost:8080/smila/pipeline/SearchPipeline/"</span> |
| <span class="br0">}</span>, <span class="br0">{</span> |
| <span class="st0">"name"</span> : <span class="st0">"SearchPipeline2"</span>, |
| <span class="st0">"url"</span> : <span class="st0">"http://localhost:8080/smila/pipeline/SearchPipeline2/"</span> |
| <span class="br0">}</span>, |
| ...<span class="br0">]</span> |
| <span class="br0">}</span></pre></div> |
| |
| <!-- |
| NewPP limit report |
| Preprocessor node count: 101/1000000 |
| Post-expand include size: 1174/2097152 bytes |
| Template argument size: 644/2097152 bytes |
| #ifexist count: 0/100 |
| --> |
| |
| <!-- Saved in parser cache with key wikidb:pcache:idhash:31279-0!1!0!!en!2!edit=0 and timestamp 20120710093508 --> |
| <div class="printfooter"> |
| Retrieved from "<a href="JSON_REST_API_for_BPEL_pipelines.html">http://wiki.eclipse.org/SMILA/Documentation/Processing/JSON_REST_API_for_BPEL_pipelines</a>"</div> |
| <!-- end content --> |
| <div class="visualClear"></div> |
| </div> |
| </div> |
| |
| |
| </div> |
| |
| |
| <!-- Yoink of toolbox for phoenix moved up --> |
| |
| |
| </div> |
| </div> |
| <div id="clearFooter"/> |
| <div id="footer" > |
| <ul id="footernav"> |
| <li class="first"><a href="http://www.eclipse.org/">Home</a></li> |
| <li><a href="http://www.eclipse.org/legal/privacy.php">Privacy Policy</a></li> |
| <li><a href="http://www.eclipse.org/legal/termsofuse.php">Terms of Use</a></li> |
| <li><a href="http://www.eclipse.org/legal/copyright.php">Copyright Agent</a></li> |
| <li><a href="http://www.eclipse.org/org/foundation/contact.php">Contact</a></li> |
| <li><a href="http://wiki.eclipse.org/Eclipsepedia:About" title="Eclipsepedia:About">About Eclipsepedia</a></li> |
| </ul> |
| <span id="copyright">Copyright © 2012 The Eclipse Foundation. All Rights Reserved</span> |
| <p id="footercredit">This page was last modified 13:56, 26 January 2012 by <a href="http://wiki.eclipse.org/User:Andreas.schank.attensity.com" title="User:Andreas.schank.attensity.com">A. Schank</a>. Based on work by <a href="http://wiki.eclipse.org/index.php?title=User:Juergen.schumacher.attensity.com&action=edit" class="new" title="User:Juergen.schumacher.attensity.com">Juergen Schumacher</a>, <a href="http://wiki.eclipse.org/User:Tmenzel.brox.de" title="User:Tmenzel.brox.de">thomas menzel</a> and <a href="http://wiki.eclipse.org/index.php?title=User:Nadine.auslaender.attensity.com&action=edit" class="new" title="User:Nadine.auslaender.attensity.com"> </a> and <a href="http://wiki.eclipse.org/index.php?title=SMILA/Documentation/Processing/JSON_REST_API_for_BPEL_pipelines&action=credits" title="SMILA/Documentation/Processing/JSON REST API for BPEL pipelines">others</a>.</p> |
| <p id="footerviews">This page has been accessed 2,629 times.</p> |
| </div> |
| |
| <script type="text/javascript"> |
| var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www."); |
| document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E")); |
| </script> |
| <script type="text/javascript"> |
| var pageTracker = _gat._getTracker("UA-910670-4"); |
| pageTracker._trackPageview(); |
| </script> |
| |
| |
| |
| |
| |
| |
| |
| <!-- <div class="visualClear"></div> --> |
| |
| <script type="text/javascript">if (window.runOnloadHook) runOnloadHook();</script> |
| </div> |
| |
| <!-- Served in 0.051 secs. --></body></html> |