The KREST node plugin provides nodes that allow KNIME to interact with RESTful webservices.
There are two types of nodes: Submitters take over the actual communication with the server whereas helpers convert REST resource representations into KNIME tables and vice versa. The purpose of this separation is to minimize potential error source for the submitting step.
All REST communications can be logged in a separate log file (to be activated in the preferences).
This work was funded under an EuroTransBio grant by the European Union and the BMBF in Germany.
The KREST nodes can be downloaded like any other KNIME extension using the Install New Software ... wizard in the Help menu. Detailed instructions can be found on the KNIME website at http://knime.org/downloads/update.
The KREST nodes are part of the Community Contributions.
KREST and KREST 2
There are 2 different version of KREST. They make use of different version of the Jersey REST library. Unfortunately the two different version are not compatible which means that you cannot upgrade KREST to KREST 2. Instead the corresponding nodes need to be replaced. The same is true for potential authentication plugins (for the extension points com.cenix.jerseyauth.custom or com.cenix.jerseyauth2.custom2) you might have generated. The plugins for KREST 1 cannot be used in KREST 2 and vice versa.
The functionality of the nodes is identical in both versions. However, KREST 2 makes use of a newer version of the jersey library. Among other it means that there are more filters (e.g. for authentication) available.
If you have used KREST nodes in a lot of workflows and do not have special authentication needs you might consider staying with KREST 1.
In our tutorial we will use the everest demo server to demonstrate the capabilities of the KREST plugin nodes. everest is a framework for developing RESTful web services in Python and the everest demo server features a simple RESTful application ("Plant Scribe") for managing plant lists in garden design projects.
In this context, imagine the following scenario: Let's suppose you are a garden designer and one of your customers, let's say a nice lady called Nancy Green, has decided she wants to make a few changes to her garden she has contracted you to design in the past. In particular, she no longer wants the pergola in her rose garden but instead a pond with a little island and some gold fish in it.
In the tutorial, we will set up a KNIME work flow that performs the requested changes.
Prerequisites for the Tutorial
We assume that you are familiar with KNIME. If not, we recommend the Getting Started Guide on the KNIME tech homepage.
Furthermore, we expect you to know the principles of RESTful web services. There are plenty of excellent introductions on this topic available in the web (e.g., this article).
The source code can be accessed at https://anonymous:firstname.lastname@example.org/svn/nodes4knime/trunk/com.cenix.
The KREST extension is published under the MIT license.
Copyright (c) 2012 Anna-Antonia Berger, F. Oliver Gathmann, Cenix BioScience, Dresden, Germany