Insert excerpt | ||||||||
---|---|---|---|---|---|---|---|---|
|
Overview
PhixFlow allows you to integrate with various APIs to export data. To achieve this you will require three elements.
- Table: Contains the data which the HTTP Exporter will provide to the API.
- HTTP Exporter: Uses the HTTP Datasource the data from the HTTP Datasource.
- HTTP Datasource: provide the information needed to connect to an external source of data via HTTP.
Example
APIs will have different specifications, therefore we will walk though a generic solution which writes data back to an API.
Solution
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
- Hover your mouse over the table contain the data you wish to export.
- From the popup menu select
Insert excerpt _http_exporter _http_exporter nopanel true - You can drag a new HTTP Exporter from the toolbar, but you will need to connect it to the table.
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
- In properties window which opens on the right set the following:
- Basic Setting
- Name, Set a name indicative of the data being exported.
- Enabled, Tick this to use the exporter.
- Send Message
- HTTP Request Method, This defaults to GET or POST. For our example that is suitable. However see HTTP Exporter for more information, if your API requires something different.
- URL Expression, we set the URL of the API we will be communicating with, omitting the http: prefix:
- we can reference the URL from the http datasource using the syntax ${_url} (once connected). This can be useful if you have a base url in your HTTP datasource, e.g. www.phixflow.com, and you want to append to it in different collectors e.g.
${_url}/myPage1
- We can also reference a value from the table using ${pipeName.Attribute e.g. ${in.URL}.
- we can reference the URL from the http datasource using the syntax ${_url} (once connected). This can be useful if you have a base url in your HTTP datasource, e.g. www.phixflow.com, and you want to append to it in different collectors e.g.
- Statement Expression, is the statement that will be sent to the API through the datasource. Check the specifications of your API for the structure of the statement. Below is an example if a SOAP XML statement sent to Salesforce:
Code Block <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:partner.soap.sforce.com" xmlns:urn1="urn:sobject.partner.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <soapenv:Header> <urn:SessionHeader> <urn:sessionId>${in.SessionID}</urn:sessionId> </urn:SessionHeader> </soapenv:Header> <soapenv:Body> <urn:create> <urn:sObjects xsi:type="urn1:Account"> <Name> ${= removeNull(acc.Name) } </Name> <AccountNumber> ${acc.AccountNumber} </AccountNumber> <Industry>{(acc.Industry) }</Industry> <AnnualRevenue> ${acc.AnnualRevenue} </AnnualRevenue> <Phone>{(acc.Phone) }</Phone> <Website>{(acc.Website) }</Website> </urn:sObjects> </urn:create> </soapenv:Body> </soapenv:Envelope>
- HTTP Headers
- HTTP Headers, contains information about the request being sent to the API. An example header setup is illustrated below, for full details see HTTP Header:
- Advanced
- Datasource,
- Existing
- A datasource can be selected from the dropdown list or click the Datasource icon to display a complete list.
- New
- Create the datasource as described in the next section and select it as outlined in item 1 above.
- Existing
- Datasource,
- Basic Setting
Insert excerpt | ||||||
---|---|---|---|---|---|---|
|
This step is only require if you need a new datasource. Often a single HTTP Datasource will facilitate both the connection to and from an API.
- Move you mouse over the HTTP Exporter created above and click
.Insert excerpt _http_datasource _http_datasource - Alternatively you can drag a HTTP Datasource from the toolbar and drop it on the canvas, but this will require a you to manually connect the items together.
- In the properties window for the HTTP Datasource set the following:
- Name, Set a name indicative of the API.
- Enabled, Tick this option.
- Connection Type, Set this to that of the API.
- HTTP Datasource Instances, Set the instance connection details. Add a new HTTP Datasource Instance and complete the details as follows:
- Name, Indicative of the use of the instance.
- Enabled, Tick to use the instance.
- Login details can be set if required. see HTTP Datasource for more information.
- URL, The URL where the API can be found.
- Click
.Insert excerpt _finish _finish nopanel true
- Click
.Insert excerpt _finish _finish nopanel true
Secured Example
Where we need to use sensitive information, such as a password or token, these can be held in Secret Keys and access using the prefix _datasource.
Secret Key Setup
- Open the HTTP Datasource properties,
- Navigate to the Secret Keys section,
- Add your sensitive information,
- Name, name the secret key will be referenced by. For example
clientSecret
. - Secret, the secret information to be stored in an encrypted format.
- Name, name the secret key will be referenced by. For example
- Save all of your changes.
- The secret key can now be referenced by HTTP Exporters attached to the HTTP Datasource. It is available to use in the URL Expression and Statement Expression.
- To reference the secret key use the syntax:
_datasource.secretname
. - For example,
_datasource.clientSecret
Code Block |
---|
client_id=client_secret=${_datasource.clientSecret}&resource=phixflow.com&grant_type=client_credentials |
Troubleshooting
PhixFlow can log the traffic sent to and from an API, this can be helpful as it lets you see the actual communication data such as the Statement Expression values or the Responses from the API.
To enable logging:
- Click Administration Menu → System → Logging,
- Navigate down to Collector/Exporter Logging and tick
- Log HTTP Collector Connection Details
- Log HTTP Exporter Connection Details
- This is illustrated below:
- Once you have resolved your issue, turn these settings back off to avoid filling your logs with unnecessary information.
- To view the results open the System Console from the top right corner of PhixFlow (
).Insert excerpt _console _console - In the Completed Task section, click on your Task.
- The Messages section on the right will now contain the logging for your activity.
- Double-click the messages to open them, in the window that opens also click on the Message Detail tab to see detailed information. Below is an example, here we see the response form the JSON response from the API:
More Information
For more information about the configuration options surrounding HTTP Datasources and Collectors see the following pages: