SlideShare a Scribd company logo
How to Build Complex Calls to
APIs (Without Writing Any Code)
Just getting started with REST
APIs?
How to Connect to Any REST API (Without Writing
Any Code)
Meet the Presenters
Sanae Mendoza
FME Server Support
Specialist
Sienna Emery
FME Server Support
Specialist
Agenda
What we’re covering today.
● Intro to FME
● Did you know the HTTPCaller
could do that?
● Building HTTP “SQL” Queries
● Turning cURL into HTTP Calls
● Building Custom Web Tools
● Pagination in the HTTPCaller
Our Mission
To help you maximize the value of your data.
FME®
Integration Platform
Connect. Transform. Automate.
FME Desktop
Build & Run Data Workflows
Get a free trial of FME Desktop and FME Server at safe.com
FME Server
Automate Data Workflows
FME Cloud
Hosted FME Server
FME Mobile
Deliver the Power of
FME to Mobile
Connect Your Data Sources Transform Your Data Automate Your Workflows
Integrate and convert information
across 400+ applications.
450+ powerful transformers
safe.com/transformers | hub.safe.com
Build event based workflows in a visual
interface
Did you know the HTTPCaller could do that?
New and Advanced Features.
Cookies
A small chunk of data given a user’s
web browser by the server. The
“cookie” is exchanged back and forth,
so that the server can track that user’s
requests.
All About Cookies
Cookies are Stateful.
Both the client and server keep a record of the ongoing “session” with a
unique cookie.
Typical Uses for Cookies
Authentication. Keeping you logged in.
User Personalization. Dark mode or light mode.
Tracking. Following you around the internet.
Maintaining a Session inside a Workspace
The HTTPCaller
Response Headers (Feature Information)
Concurrency
Multiple requests can be sent and
processed at the same time
(make your workflows faster!)
Concurrency / Looping Options
Control how many HTTP requests you send at one time
Sending one request at a time might slow down your workspace.
By increasing the number of concurrent requests allowed, you can process
multiple requests at the same time. This can provide significant
performance benefits.
(Just make sure the HTTP server allows it!)
HTTPCaller Racing
50 requests 1 request
Rate Limiting
The number of HTTP requests
allowed to be made within a given
time period.
Working within server rate limits
Some servers limit how many requests can be sent in a time frame. Exceeding those
limits can result in an error or temporary block.
Control the maximum number of requests that can be made within a time frame to
make sure your workspaces always run smoothly.
Rate Limiting
What is the API rate limit here? 1 per year?
Building HTTP “SQL” Queries
Dynamically build HTTP queries in your workspaces
API “Databases”
Socrata Open Data Portal
Online platform for government, non-profit, and NGO datasets.
Socrata Open Data API (SODA)
A tabular “database” that can be accessed programmically.
Webinar: Open Data… Automated! Using FME with Socrata
Don’t forget the Socrata Reader and Writer
Combining HTTP parameters with Structured Query Language (SQL)
SoQL (Socrata Query Language) allows for complex queries, functions, or analysis.
(See also: GraphQL, SOQL (Salesforce Query Language), PostgREST….)
SoQL queries are sent with REST calls just like parameters. Append a query to an API
endpoint to pull specific data from an API accessible dataset.
API Query Languages
e.g. ROUND(123.4545, 2) = 123.4500
Traffic Camera Demo
The Goal
I want to pull traffic
cameras along my
routes, I need to
build a SoQL clause
to use the Socrata
API.
The Obstacles
I’m not familiar
with API query
languages and the
traffic camera
dataset is very
large.
The Solution
I can use FME to
dynamically build
SoQL clauses so that
I can pull just the
data I need each
time.
The Result
Socrata is queried
for each route.
I can leverage SoQL
queries to make my
workflows more
efficient.
Turning cURL into HTTP Calls
What to do when the API documentation is written in cURL
API Documentation
Ever get confused by API documentation
like this?
Some API documentation may be written
in cURL or a programming language
Question of the Week: Web Services,
cURL, and the HTTPCaller
cURL
● Client URL
● A command line tool that is most
likely already installed on your
machine
● Works for HTTP calls, FTP, and much
more!
● FME uses it in the HTTPCaller
Want to learn more?
Using Postman
Using Postman (a free
tool!) cURL can be
automatically transformed
into HTTP requests
Understanding cURL
https://idratherbewriting.com/learnapidoc/docapis_understand_curl.html
cURL Description
-X HTTP Method
-H Header
-F Form content. This causes
curl to POST data using
the Content-Type
multipart/form-data
Need more?
Demo Intro
Colorize through deep
learning API
Uploading Attachments
There are many ways to upload files using the HTTPCaller. Read the API documentation
to determine which to use!
Downloading Attachments
Files can be downloaded directly in the HTTPCaller! This sends the response body to a
file instead of an attribute.
Photo Processing Demo
The Goal
I have a series of
photos I’d like to
send to an API for
processing.
The Obstacles
I’m not a
programmer and
I’m unsure how to
use cURL.
The Solution
I can use FME and
Postman to break
down this cURL into
an HTTP Request I
can easily use in the
HTTPCaller
The Result
I can now
automatically
process photos
without writing any
code or use a
command line tool!
Building Custom Web Tools
Introducing Custom Transformers
A sequence of standard transformers becomes… a custom transformer!
5 reasons to Custom Transformers
1. Organization. Separate workspace content into tabs on the canvas.
2. Flexibility. Use existing custom transformers as a prototype, or tweak your own.
3. Efficiency. Reuse sequences of transformers across workspaces.
4. The FMX file. Share it with others or publish it to FME Hub.
5. Custom. Develop personalized FME tools that fit your workflows.
Embedded transformers are stored with the workspace.
Linked transformers’ definitions are stored as an external file
(.fmx). If the definition changes, all workspaces will be updated to
reflect those changes.
Where do I find them?
The Transformer Gallery in FME Workbench or The FME Hub, a
library of custom transformers and resources.
How do I make one?
Select a group of transformers, right click and select “Create
Custom Transformer....” Give it a name, description, and set up
user parameters.
Building Custom Web Tools in FME
The Goal
I need a tool that
sends text
messages via API so
that I can quickly
add it to my
organization's
workspaces.
The Obstacles
There is not a
transformer that
fits my needs and it
is not convenient to
configure the API
request each time.
The Solution
I can “wrap up” a
sequence of
transformers, with
an API request, into a
convenient package.
The Result
I can reuse and
share a custom
transformer that
accepts, sends, and
processes my API
requests.
Pagination in the HTTPCaller
Getting all the data you need!
Pagination
If an API is returning many results, the results are often broken down into pages so
the responses from the API are kept short. This is similar to a web page displaying
results on different pages to not overwhelm users.
Pagination Variables
Just like this page on FME Hub, HTTP calls often let you select the number of results per
page and how many pages you’d like to return.
Using pagination in FME
I’d like to retrieve FME Server job statistics, but the FME Server REST API will only let me
retrieve 1000 jobs at a time. How would I retrieve all jobs from a certain date in FME?
Example attributes for pagination
Attribute Definition
limit (integer) limits how many items are returned by this call.
Could set it to 10 to only retrieve 10 jobs at a time.
offset (integer) Offset of this results page
To loop or not to loop
Typically, getting all the results
from every page in a REST call
requires a loop in a custom
transformer.
However, you don’t necessarily
need a loop if you know how
many pages you need in advance.
Okay, I need to loop
● In FME looping functionality can be found in custom transformers
● Loops can be added by right clicking on the canvas and selecting Insert
Transformer Input, then Insert Transformer Loop
Looping Considerations
● Without the right logic, it is very easy
to create an infinite loop!
● Avoid blocking transformers if
possible. Blocking transformers can
only be used in linked transformers
which are much more difficult to
troubleshoot
● Set the HTTPCaller concurrency to 1
Pagination demo
The Goal
I’d like to pull data
from all FME Server
jobs around a
certain date
The Obstacles
I need to make
multiple calls to
the FME Server API
to get all results
The Solution
I can use a loop in a
custom transformer
to get all the results
The Result
Using FME, I can
get all the results I
need in an easy
way
Tips & Tricks
● The documentation should have all
you need to know about working
with REST APIs
● External tools like Postman can be
an easy way to test the workflow
● Start small and build complexity
● Developer tools in a browser can
be used to help understand the
calls being made
● Fiddler can be used to track
requests and response
Which REST API service are
you using? How can we help
you get connected?
Poll:
Which REST API training content are you most interested
in?
● Creating your own Web Services
● Debugging HTTP errors
● Web Mapping and Applications
● Parsing JSON
● Other (chat out anything missed!)
Getting Started
Download FME 2021.0 Download the
workspaces from this
webinar
Try connecting to a
REST API!
Free Trial | Upgrade
Webinars
How to Connect to Any API (Without Writing Any Code)
A Step-By-Step Guide to Building Codeless Web Apps
Automating the Enterprise with Event-Driven Workflows
Useful Links More Resources...
Getting Started with APIs
FME Server REST API Training
Creating Web Connections
FME Hub
FME Community
Q&A
Thank you!
Try out your REST API workflow today!
Connect with us for more FME

More Related Content

KEY
Event Driven Architecture
PDF
To Loop or Not to Loop: Overcoming Roadblocks with FME
PDF
Introduction to Event-Driven Architecture
PDF
Integrate CMS Content Into Lightning Communities with CMS Connect
PDF
FME Platform Best Practices.pdf
PPTX
REST APIs and MQ
PPTX
Flowable Business Processing from Kafka Events
PDF
Introduction to MLflow
Event Driven Architecture
To Loop or Not to Loop: Overcoming Roadblocks with FME
Introduction to Event-Driven Architecture
Integrate CMS Content Into Lightning Communities with CMS Connect
FME Platform Best Practices.pdf
REST APIs and MQ
Flowable Business Processing from Kafka Events
Introduction to MLflow

What's hot (20)

PPTX
Introduction to Microservices
PDF
Camunda BPM 7.2 - English
PPTX
10 Golden Rules for S/4 HANA Migrations
PPTX
Large Data Volume Salesforce experiences
PDF
A Comprehensive Guide to Salesforce Field Service
PPTX
Microsoft adoption guide workbook
PDF
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
PDF
S/4 HANA conversion functional value proposition
PDF
Implementando una Arquitectura de Microservicios
PDF
S4HANA Migration Overview
PDF
Schemas Beyond The Edge
PPTX
MLOps - The Assembly Line of ML
PPTX
Salesforce Integration Pattern Overview
PDF
Webhooks in FME Server, Cityworks & GIS Applications
PDF
Azure Pipelines for Automatic Deployment
KEY
Event Driven Architecture
PPTX
Training Webinar: Detect Performance Bottlenecks of Applications
PPT
SAP ABAP - Needed Notes
PPTX
Building Event Driven Integration Architectures
PPTX
Sap architecture
Introduction to Microservices
Camunda BPM 7.2 - English
10 Golden Rules for S/4 HANA Migrations
Large Data Volume Salesforce experiences
A Comprehensive Guide to Salesforce Field Service
Microsoft adoption guide workbook
Microservice Architecture | Microservices Tutorial for Beginners | Microservi...
S/4 HANA conversion functional value proposition
Implementando una Arquitectura de Microservicios
S4HANA Migration Overview
Schemas Beyond The Edge
MLOps - The Assembly Line of ML
Salesforce Integration Pattern Overview
Webhooks in FME Server, Cityworks & GIS Applications
Azure Pipelines for Automatic Deployment
Event Driven Architecture
Training Webinar: Detect Performance Bottlenecks of Applications
SAP ABAP - Needed Notes
Building Event Driven Integration Architectures
Sap architecture
Ad

Similar to How to Build Complex Calls to APIs (Without Writing Any Code) (20)

PDF
How to Connect to Any REST API with No-Code
PDF
How to Connect to Any REST API (Without Writing Any Code)
PDF
How to Connect to Any REST API with No-Code
PDF
Data Virtualization: Bringing the Power of FME to Any Application
PDF
Building a REST API Interface With FME
PDF
Frequently asked MuleSoft Interview Questions and Answers from Techlightning
PDF
Breaking Barriers & Leveraging the Latest Developments in AI Technology
PDF
Back to FME School - Day 2: Your Data and FME
PDF
A Safer's Guide to Best Practices for Optimizing Jobs on FME Server
PDF
Web Connections & Services in FME: Tips & Tricks to Setting Up and Harnessing...
PDF
Web Connections & Services in FME Webinar
PDF
FME Hub Unlocked: Your Guide to Sharing and Discovering Resources
PDF
A Safer's Guide to Best Practices for Optimizing Jobs on FME Server
PDF
FME Flow Fundamentals for Admins: Setup & Configuration FAQs
PPTX
Infrastructure Automation with Chef & Ansible
PPT
By: Luis A. Colón Anthony Trivino
PPTX
Deep Dive into FME Server 2014
DOCX
It and ej
PDF
Unveiling FME 2016
PDF
Maximizing Cloud Efficiency with Data Integration: AWS, Google Cloud, and Azure
How to Connect to Any REST API with No-Code
How to Connect to Any REST API (Without Writing Any Code)
How to Connect to Any REST API with No-Code
Data Virtualization: Bringing the Power of FME to Any Application
Building a REST API Interface With FME
Frequently asked MuleSoft Interview Questions and Answers from Techlightning
Breaking Barriers & Leveraging the Latest Developments in AI Technology
Back to FME School - Day 2: Your Data and FME
A Safer's Guide to Best Practices for Optimizing Jobs on FME Server
Web Connections & Services in FME: Tips & Tricks to Setting Up and Harnessing...
Web Connections & Services in FME Webinar
FME Hub Unlocked: Your Guide to Sharing and Discovering Resources
A Safer's Guide to Best Practices for Optimizing Jobs on FME Server
FME Flow Fundamentals for Admins: Setup & Configuration FAQs
Infrastructure Automation with Chef & Ansible
By: Luis A. Colón Anthony Trivino
Deep Dive into FME Server 2014
It and ej
Unveiling FME 2016
Maximizing Cloud Efficiency with Data Integration: AWS, Google Cloud, and Azure
Ad

More from Safe Software (20)

PDF
Getting Started with Data Integration: FME Form 101
PDF
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
PDF
Automating ArcGIS Content Discovery with FME: A Real World Use Case
PDF
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
PDF
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
PDF
Notification System for Construction Logistics Application
PDF
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
PDF
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
PDF
Transforming Utility Networks: Large-scale Data Migrations with FME
PDF
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
PDF
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
PDF
FME in Overdrive - Peak of Data & AI 2025
PDF
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
PDF
Pipeline Industry IoT - Real Time Data Monitoring
PDF
FME in Overdrive: Unleashing the Power of Parallel Processing
PDF
Fiber to the People! By Deutsche Telekom
PDF
Governing Geospatial Data at Scale: Optimizing ArcGIS Online with FME in Envi...
PDF
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
PDF
Introducing and Operating FME Flow for Kubernetes in a Large Enterprise: Expe...
PDF
5 Things to Consider When Deploying AI in Your Enterprise
Getting Started with Data Integration: FME Form 101
Peak of Data & AI Encore- AI for Metadata and Smarter Workflows
Automating ArcGIS Content Discovery with FME: A Real World Use Case
Peak of Data & AI Encore - Real-Time Insights & Scalable Editing with ArcGIS
Infrastructure planning and resilience - Keith Hastings.pptx.pdf
Notification System for Construction Logistics Application
Building Real-Time Digital Twins with IBM Maximo & ArcGIS Indoors
Using FME to Develop Self-Service CAD Applications for a Major UK Police Force
Transforming Utility Networks: Large-scale Data Migrations with FME
Peak of Data & AI Encore AI-Enhanced Workflows for the Real World
Automating Feature Enrichment and Station Creation in Natural Gas Utility Net...
FME in Overdrive - Peak of Data & AI 2025
Powering GIS with FME and VertiGIS - Peak of Data & AI 2025
Pipeline Industry IoT - Real Time Data Monitoring
FME in Overdrive: Unleashing the Power of Parallel Processing
Fiber to the People! By Deutsche Telekom
Governing Geospatial Data at Scale: Optimizing ArcGIS Online with FME in Envi...
Enhancing Environmental Monitoring with Real-Time Data Integration: Leveragin...
Introducing and Operating FME Flow for Kubernetes in a Large Enterprise: Expe...
5 Things to Consider When Deploying AI in Your Enterprise

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PPTX
Understanding_Digital_Forensics_Presentation.pptx
PDF
Mobile App Security Testing_ A Comprehensive Guide.pdf
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PPT
Teaching material agriculture food technology
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PDF
cuic standard and advanced reporting.pdf
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Cloud computing and distributed systems.
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PDF
KodekX | Application Modernization Development
Diabetes mellitus diagnosis method based random forest with bat algorithm
Building Integrated photovoltaic BIPV_UPV.pdf
Understanding_Digital_Forensics_Presentation.pptx
Mobile App Security Testing_ A Comprehensive Guide.pdf
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Dropbox Q2 2025 Financial Results & Investor Presentation
Teaching material agriculture food technology
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Electronic commerce courselecture one. Pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Per capita expenditure prediction using model stacking based on satellite ima...
cuic standard and advanced reporting.pdf
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Cloud computing and distributed systems.
Review of recent advances in non-invasive hemoglobin estimation
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
KodekX | Application Modernization Development

How to Build Complex Calls to APIs (Without Writing Any Code)

  • 1. How to Build Complex Calls to APIs (Without Writing Any Code)
  • 2. Just getting started with REST APIs? How to Connect to Any REST API (Without Writing Any Code)
  • 3. Meet the Presenters Sanae Mendoza FME Server Support Specialist Sienna Emery FME Server Support Specialist
  • 4. Agenda What we’re covering today. ● Intro to FME ● Did you know the HTTPCaller could do that? ● Building HTTP “SQL” Queries ● Turning cURL into HTTP Calls ● Building Custom Web Tools ● Pagination in the HTTPCaller
  • 5. Our Mission To help you maximize the value of your data.
  • 6. FME® Integration Platform Connect. Transform. Automate. FME Desktop Build & Run Data Workflows Get a free trial of FME Desktop and FME Server at safe.com FME Server Automate Data Workflows FME Cloud Hosted FME Server FME Mobile Deliver the Power of FME to Mobile
  • 7. Connect Your Data Sources Transform Your Data Automate Your Workflows Integrate and convert information across 400+ applications. 450+ powerful transformers safe.com/transformers | hub.safe.com Build event based workflows in a visual interface
  • 8. Did you know the HTTPCaller could do that? New and Advanced Features.
  • 9. Cookies A small chunk of data given a user’s web browser by the server. The “cookie” is exchanged back and forth, so that the server can track that user’s requests.
  • 10. All About Cookies Cookies are Stateful. Both the client and server keep a record of the ongoing “session” with a unique cookie. Typical Uses for Cookies Authentication. Keeping you logged in. User Personalization. Dark mode or light mode. Tracking. Following you around the internet.
  • 11. Maintaining a Session inside a Workspace The HTTPCaller Response Headers (Feature Information)
  • 12. Concurrency Multiple requests can be sent and processed at the same time (make your workflows faster!)
  • 13. Concurrency / Looping Options Control how many HTTP requests you send at one time Sending one request at a time might slow down your workspace. By increasing the number of concurrent requests allowed, you can process multiple requests at the same time. This can provide significant performance benefits. (Just make sure the HTTP server allows it!)
  • 15. Rate Limiting The number of HTTP requests allowed to be made within a given time period.
  • 16. Working within server rate limits Some servers limit how many requests can be sent in a time frame. Exceeding those limits can result in an error or temporary block. Control the maximum number of requests that can be made within a time frame to make sure your workspaces always run smoothly. Rate Limiting What is the API rate limit here? 1 per year?
  • 17. Building HTTP “SQL” Queries Dynamically build HTTP queries in your workspaces
  • 18. API “Databases” Socrata Open Data Portal Online platform for government, non-profit, and NGO datasets. Socrata Open Data API (SODA) A tabular “database” that can be accessed programmically. Webinar: Open Data… Automated! Using FME with Socrata Don’t forget the Socrata Reader and Writer
  • 19. Combining HTTP parameters with Structured Query Language (SQL) SoQL (Socrata Query Language) allows for complex queries, functions, or analysis. (See also: GraphQL, SOQL (Salesforce Query Language), PostgREST….) SoQL queries are sent with REST calls just like parameters. Append a query to an API endpoint to pull specific data from an API accessible dataset. API Query Languages e.g. ROUND(123.4545, 2) = 123.4500
  • 20. Traffic Camera Demo The Goal I want to pull traffic cameras along my routes, I need to build a SoQL clause to use the Socrata API. The Obstacles I’m not familiar with API query languages and the traffic camera dataset is very large. The Solution I can use FME to dynamically build SoQL clauses so that I can pull just the data I need each time. The Result Socrata is queried for each route. I can leverage SoQL queries to make my workflows more efficient.
  • 21. Turning cURL into HTTP Calls What to do when the API documentation is written in cURL
  • 22. API Documentation Ever get confused by API documentation like this? Some API documentation may be written in cURL or a programming language Question of the Week: Web Services, cURL, and the HTTPCaller
  • 23. cURL ● Client URL ● A command line tool that is most likely already installed on your machine ● Works for HTTP calls, FTP, and much more! ● FME uses it in the HTTPCaller Want to learn more?
  • 24. Using Postman Using Postman (a free tool!) cURL can be automatically transformed into HTTP requests
  • 25. Understanding cURL https://idratherbewriting.com/learnapidoc/docapis_understand_curl.html cURL Description -X HTTP Method -H Header -F Form content. This causes curl to POST data using the Content-Type multipart/form-data Need more?
  • 26. Demo Intro Colorize through deep learning API
  • 27. Uploading Attachments There are many ways to upload files using the HTTPCaller. Read the API documentation to determine which to use!
  • 28. Downloading Attachments Files can be downloaded directly in the HTTPCaller! This sends the response body to a file instead of an attribute.
  • 29. Photo Processing Demo The Goal I have a series of photos I’d like to send to an API for processing. The Obstacles I’m not a programmer and I’m unsure how to use cURL. The Solution I can use FME and Postman to break down this cURL into an HTTP Request I can easily use in the HTTPCaller The Result I can now automatically process photos without writing any code or use a command line tool!
  • 30. Building Custom Web Tools Introducing Custom Transformers
  • 31. A sequence of standard transformers becomes… a custom transformer!
  • 32. 5 reasons to Custom Transformers 1. Organization. Separate workspace content into tabs on the canvas. 2. Flexibility. Use existing custom transformers as a prototype, or tweak your own. 3. Efficiency. Reuse sequences of transformers across workspaces. 4. The FMX file. Share it with others or publish it to FME Hub. 5. Custom. Develop personalized FME tools that fit your workflows.
  • 33. Embedded transformers are stored with the workspace. Linked transformers’ definitions are stored as an external file (.fmx). If the definition changes, all workspaces will be updated to reflect those changes. Where do I find them? The Transformer Gallery in FME Workbench or The FME Hub, a library of custom transformers and resources. How do I make one? Select a group of transformers, right click and select “Create Custom Transformer....” Give it a name, description, and set up user parameters.
  • 34. Building Custom Web Tools in FME The Goal I need a tool that sends text messages via API so that I can quickly add it to my organization's workspaces. The Obstacles There is not a transformer that fits my needs and it is not convenient to configure the API request each time. The Solution I can “wrap up” a sequence of transformers, with an API request, into a convenient package. The Result I can reuse and share a custom transformer that accepts, sends, and processes my API requests.
  • 35. Pagination in the HTTPCaller Getting all the data you need!
  • 36. Pagination If an API is returning many results, the results are often broken down into pages so the responses from the API are kept short. This is similar to a web page displaying results on different pages to not overwhelm users.
  • 37. Pagination Variables Just like this page on FME Hub, HTTP calls often let you select the number of results per page and how many pages you’d like to return.
  • 38. Using pagination in FME I’d like to retrieve FME Server job statistics, but the FME Server REST API will only let me retrieve 1000 jobs at a time. How would I retrieve all jobs from a certain date in FME?
  • 39. Example attributes for pagination Attribute Definition limit (integer) limits how many items are returned by this call. Could set it to 10 to only retrieve 10 jobs at a time. offset (integer) Offset of this results page
  • 40. To loop or not to loop Typically, getting all the results from every page in a REST call requires a loop in a custom transformer. However, you don’t necessarily need a loop if you know how many pages you need in advance.
  • 41. Okay, I need to loop ● In FME looping functionality can be found in custom transformers ● Loops can be added by right clicking on the canvas and selecting Insert Transformer Input, then Insert Transformer Loop
  • 42. Looping Considerations ● Without the right logic, it is very easy to create an infinite loop! ● Avoid blocking transformers if possible. Blocking transformers can only be used in linked transformers which are much more difficult to troubleshoot ● Set the HTTPCaller concurrency to 1
  • 43. Pagination demo The Goal I’d like to pull data from all FME Server jobs around a certain date The Obstacles I need to make multiple calls to the FME Server API to get all results The Solution I can use a loop in a custom transformer to get all the results The Result Using FME, I can get all the results I need in an easy way
  • 44. Tips & Tricks ● The documentation should have all you need to know about working with REST APIs ● External tools like Postman can be an easy way to test the workflow ● Start small and build complexity ● Developer tools in a browser can be used to help understand the calls being made ● Fiddler can be used to track requests and response
  • 45. Which REST API service are you using? How can we help you get connected?
  • 46. Poll: Which REST API training content are you most interested in? ● Creating your own Web Services ● Debugging HTTP errors ● Web Mapping and Applications ● Parsing JSON ● Other (chat out anything missed!)
  • 47. Getting Started Download FME 2021.0 Download the workspaces from this webinar Try connecting to a REST API! Free Trial | Upgrade
  • 48. Webinars How to Connect to Any API (Without Writing Any Code) A Step-By-Step Guide to Building Codeless Web Apps Automating the Enterprise with Event-Driven Workflows Useful Links More Resources... Getting Started with APIs FME Server REST API Training Creating Web Connections FME Hub FME Community
  • 49. Q&A
  • 50. Thank you! Try out your REST API workflow today! Connect with us for more FME