<!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 pipelets" />
		<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&amp;feed=rss" />
<link rel="alternate" type="application/atom+xml" title="Eclipsepedia Atom Feed" href="http://wiki.eclipse.org/index.php?title=Special:Recentchanges&amp;feed=atom" />
	
		
		<title>SMILA/Documentation/Processing/JSON REST API for pipelets - Eclipsepedia</title>

		<style type="text/css" media="screen,projection">/*<![CDATA[*/ @import "/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_pipelets";
var wgTitle = "SMILA/Documentation/Processing/JSON REST API for pipelets";
var wgAction = "view";
var wgRestrictionEdit = [];
var wgRestrictionMove = [];
var wgArticleId = "35318";
var wgIsArticle = true;
var wgUserName = null;
var wgUserGroups = null;
var wgUserLanguage = "en";
var wgContentLanguage = "en";
var wgBreakFrames = false;
var wgCurRevisionId = "285736";
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=-&amp;action=raw&amp;gen=js&amp;useskin=eclipsenova"><!-- site js --></script>

		<!-- Head Scripts -->
				<script type="text/javascript" src="http://wiki.eclipse.org/skins/common/ajax.js?116"></script>
<link rel="stylesheet" type="text/css" href="JSON_REST_API_for_pipelets.html" />	</head>
<body  class="mediawiki ns-0 ltr page-SMILA_Documentation_Processing_JSON_REST_API_for_pipelets">
	<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&amp;returnto=SMILA/Documentation/Processing/JSON_REST_API_for_pipelets">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" />&nbsp;
                    <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 &#160;&#160;</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 &#160;&#160;</a></li>

				<li id="t-whatlinkshere"><a href="http://wiki.eclipse.org/Special:Whatlinkshere/SMILA/Documentation/Processing/JSON_REST_API_for_pipelets">What links here</a></li>
				<li id="t-recentchangeslinked"><a href="http://wiki.eclipse.org/Special:Recentchangeslinked/SMILA/Documentation/Processing/JSON_REST_API_for_pipelets">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_pipelets&amp;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_pipelets&amp;oldid=285736">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_pipelets.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_pipelets&amp;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_pipelets&amp;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_pipelets&amp;action=history"><span class="tab">History</span></a></li>
                                         <li><a href="http://wiki.eclipse.org/index.php?title=Special:Userlogin&amp;returnto=SMILA/Documentation/Processing/JSON%20REST%20API%20for%20pipelets"><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 pipelets</h1>
      <div id="bodyContent">
        <h3 id="siteSub">From Eclipsepedia</h3>
        <div id="contentSub"><span class="subpages">&lt; <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_pipelets.html#column-one">navigation</a>, <a href="JSON_REST_API_for_pipelets.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_pipelets.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_pipelets.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_pipelets.html#Get_Pipelet_Overview"><span class="tocnumber">1.1.1</span> <span class="toctext">Get Pipelet Overview</span></a></li>
<li class="toclevel-3"><a href="JSON_REST_API_for_pipelets.html#Get_a_Pipelet_description"><span class="tocnumber">1.1.2</span> <span class="toctext">Get a Pipelet description</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 to display the registered pipelets as well as descriptions for single pipelets (i.e. class name, parameter description, pipelet description and other additional data).
</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_Pipelet_Overview"></a><h4> <span class="mw-headline"> Get Pipelet Overview </span></h4>
<p>GET: Returns a list of all deployed pipelets which have been detected by the <tt>PipeletTracker</tt> including URLs to access their descriptions. The list also contains names of pipelets for which the pipelet description can be read from the <tt>SMILA-INF</tt> directory in the bundle, but the pipelet class cannot be successfully instantiated.
</p><p><b>Supported operations:</b> 
</p>
<ul><li>GET: Gets a list of all registered pipelets.
</li></ul>
<p><b>Usage:</b> 
</p>
<ul><li>URL: <tt>http://&lt;hostname&gt;:8080/smila/pipelets/</tt> 
</li><li>Allowed methods: 
<ul><li>GET (no further URL parameters and no request body allowed)
</li></ul>
</li><li>Response status codes: 
<ul><li>200 OK: Upon successful execution of GET.
</li><li>500 INTERNAL SERVER ERROR: Any other error.
</li></ul>
</li></ul>
<p><b>Example:</b>
</p>
<pre>
GET http://localhost:8080/smila/pipelets/
200 OK
{
  &quot;pipelets&quot;&nbsp;: [{
    &quot;class&quot;&nbsp;: &quot;org.eclipse.smila.processing.pipelets.xmlprocessing.RemoveElementFromXMLPipelet&quot;,
    &quot;url&quot;&nbsp;: &quot;http://localhost:8080/smila/pipelets/org.eclipse.smila.processing.pipelets.xmlprocessing.RemoveElementFromXMLPipelet/&quot;
  }, {
    &quot;class&quot;&nbsp;: &quot;org.eclipse.smila.processing.pipelets.xmlprocessing.XPathFilterPipelet&quot;,
    &quot;url&quot;&nbsp;: &quot;http://localhost:8080/smila/pipelets/org.eclipse.smila.processing.pipelets.xmlprocessing.XPathFilterPipelet/&quot;
  }, {
    &quot;class&quot;&nbsp;: &quot;org.eclipse.smila.processing.pipelets.xmlprocessing.XslTransformationPipelet&quot;,
    &quot;url&quot;&nbsp;: &quot;http://localhost:8080/smila/pipelets/org.eclipse.smila.processing.pipelets.xmlprocessing.XslTransformationPipelet/&quot;
  }, {
    &quot;class&quot;&nbsp;: &quot;org.eclipse.smila.ontology.pipelets.SesameRecordReaderPipelet&quot;,
    &quot;url&quot;&nbsp;: &quot;http://localhost:8080/smila/pipelets/org.eclipse.smila.ontology.pipelets.SesameRecordReaderPipelet/&quot;
  }, {
    &quot;class&quot;&nbsp;: &quot;org.eclipse.smila.aperture.pipelets.AperturePipelet&quot;,
    &quot;url&quot;&nbsp;: &quot;http://localhost:8080/smila/pipelets/org.eclipse.smila.aperture.pipelets.AperturePipelet/&quot;
  },
...
}
</pre>
<a name="Get_a_Pipelet_description"></a><h4> <span class="mw-headline"> Get a Pipelet description  </span></h4>
<p>GET: Returns a JSON object containing the description of the requested pipelet. The object consists of the class name of the pipelet, optionally the textual description of the pipelet and the description of its parameters. Additionally to the original pipelet description read from the <tt>SMILA-INF</tt> of the bundle, the returned description can also contain <tt>errors</tt> if the pipelet class could not be instantiated (in this case the pipelet will not work properly in pipelines) or the pipelet description was not wellformed (in this case the pipelet should still work).
</p><p><b>Supported operations:</b> 
</p>
<ul><li>GET: Get a pipelet description.
</li></ul>
<p><b>Usage:</b> 
</p>
<ul><li>URL: <tt>http://&lt;hostname&gt;:8080/smila/pipelets/&lt;pipelet-class-name&gt;/</tt> 
</li><li>Allowed methods: 
<ul><li>GET (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.
</li><li>404 NOT FOUND: If the specified pipelet does not exist.
</li><li>405 METHOD NOT ALLOWED: For methods other than "GET".
</li><li>500 INTERNAL SERVER ERROR: Any other error.
</li></ul>
</li></ul>
<p><b>Example:</b>
</p>
<pre>
GET http://localhost:8080/smila/pipelets/org.eclipse.smila.processing.pipelets.CopyPipelet
200 OK
{
  &quot;class&quot;&nbsp;: &quot;org.eclipse.smila.processing.pipelets.CopyPipelet&quot;,
  &quot;parameters&quot;: [        
    {
      &quot;name&quot;: &quot;inputType&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;values&quot;: [&quot;ATTACHMENT&quot;, &quot;ATTRIBUTE&quot;]       
    },
    {
      &quot;name&quot;: &quot;outputType&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;values&quot;: [&quot;ATTACHMENT&quot;, &quot;ATTRIBUTE&quot;]         
    },
    {
      &quot;name&quot;: &quot;inputName&quot;,
      &quot;type&quot;: &quot;string&quot;            
    },
    {
      &quot;name&quot;: &quot;outputName&quot;,
      &quot;type&quot;: &quot;string&quot;            
    },
    {
      &quot;name&quot;: &quot;mode&quot;,
      &quot;type&quot;: &quot;string&quot;,
      &quot;values&quot;: [&quot;COPY&quot;, &quot;MOVE&quot;],
      &quot;optional&quot;: true
    }     
  ],
  &quot;description&quot;: &quot;This pipelet can be used to copy a string value between attributes and/or attachments. 
It supports two execution modes: COPY: copy the value from the input attribute/attachment to the output 
attribute/attachment, MOVE: same as COPY, but after that delete the value from the input attribute/attachment&quot;
}
</pre>
<p><b>Example with error messages</b>
</p><p>In this example the pipelet class did not exist in the bundle, and the parameter description was not valid. Both kinds of errors are listed under the <tt>errors</tt> key:
</p>
<pre>
{
    &quot;class&quot;:&quot;org.eclipse.smila.processing.test.InvalidClassAndParametersPipelet&quot;,
    &quot;parameters&quot;:[
        {
            &quot;whats-this&quot;:&quot;not-a-parameter&quot;
        }
    ],
    &quot;description&quot;:&quot;test pipelet that won't be found and has invalid parameters description.&quot;,
    &quot;errors&quot;:[
        &quot;Pipelet class could not be loaded.&quot;,
        &quot;Parameters section is invalid. Missing field 'name' or it has empty value.&quot;
    ]
}
</pre>

<!-- 
NewPP limit report
Preprocessor node count: 27/1000000
Post-expand include size: 0/2097152 bytes
Template argument size: 0/2097152 bytes
#ifexist count: 0/100
-->

<!-- Saved in parser cache with key wikidb:pcache:idhash:35318-0!1!0!!en!2!edit=0 and timestamp 20120202151339 -->
<div class="printfooter">
Retrieved from "<a href="JSON_REST_API_for_pipelets.html">http://wiki.eclipse.org/SMILA/Documentation/Processing/JSON_REST_API_for_pipelets</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 &copy; 2012 The Eclipse Foundation. All Rights Reserved</span>
	      <p id="footercredit">This page was last modified 11:02, 23 January 2012 by <a href="http://wiki.eclipse.org/index.php?title=User:Juergen.schumacher.attensity.com&amp;action=edit" class="new" title="User:Juergen.schumacher.attensity.com">Juergen Schumacher</a>. Based on work by <a href="http://wiki.eclipse.org/User:Andreas.schank.attensity.com" title="User:Andreas.schank.attensity.com">A. Schank</a>.</p>
	      <p id="footerviews">This page has been accessed 167 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.049 secs. --></body></html>
