Working with Web Services and FME

Liz Sanderson
Liz Sanderson
  • Updated

Introduction

Connecting to the web allows for limitless integration possibilities with FME.  Explore the wide selection of readers, writers, and transformers designed to work with web and cloud services.  Configurable tools, like the HTTPCaller, allow you to extend and build custom tools with FME to any API.  
 
‘Web services’ cover a diverse range of topics from networking, protocols, scripting, to wrangling data exchange formats.  This page covers some of the common formats, tutorials, questions and resources to get started with web services and FME. For a high-level overview of how FME can help you with 3D, see our website

 

Web Services Terminology

API: an Application Programming Interface is a set of defined constraints that allows the software to communicate with a defined protocol, like HTTP. There are different types of APIs, like RESTful and SOAP. 
Authentication: the process of verifying who a user is.
Authorization: the process of checking what information and applications a user has permission to access.
Basic: The simplest form of authentication with a username and password.
Client: usually a web browser, a client requests the data.
Cloud Services: various infrastructure, platform, and software services provided to users through the internet which are hosted and managed by a certain service provider.
FME Flow Web Services: FME Flow provides a Service-Oriented Architecture (SOA) that brings all the capabilities of the FME platform to a server environment. The FME Flow functionality is presented through a number of web- and application-based interfaces.
HTTP/HTTPS: HyperText Transfer Protocol defines the communication “rules” for exchanging data over the web using a client-server structure. 
JSON/XML/GML: Common file formats for transmitting data across the web.
OAuth: An open-standard protocol where an application can authenticate a user and access their information through a third-party application without the user’s credentials.
Server: on the other end of the request, a server receives the request from the client and returns data. 
Token: An alpha-numeric string used to authenticate and identify an application to an API as opposed to defining a user.
Transformation Services:

  • Job Submitter Service: Accepts and runs any workspace job request, and the resulting web page indicates whether the job succeeded or failed.
  • Data Download Service: Provides users with the output from a workspace as a downloadable zip file. Use cases often allow users to specify specific layers, formats, and coordinate systems for the download. Optionally, an email with the download link can be sent to specified recipients.
  • Data Streaming Service: Accepts and runs transformation requests from a workspace. Results are returned to the requesting client as a data stream/feed with the appropriate MIME type. Uses include workspaces that write HTML, PNG, KML, GeoRSS, GeoJSON, PDF, and others.
  • KML Network Link Service: Carries out transformation requests as specified by a workspace, and returns the results as a KMZ file containing a KML Network Link that can be used with Google Earth. This link's URL points to the Data Streaming service and references the requested workspace.

Utility Services:

  • Data Upload Service: Used to upload source data or other file-based resources for FME Flow workspaces.
  • REST Service: Provides an underlying REST-based communication mechanism for client-service applications, and also serves as a REST API. The REST service supports response formats in JSON and XML.

Web Connection: A convenient and secure way to store and reuse connection parameters to various web services.
Web Service: an application that listens for requests, communicates with other client or server applications, and transmits data across the web via standard protocols like HTTP or HTTPS.
 

Tutorials

Getting Started Articles

Tutorial: Getting Started with APIs 


Tutorial: Getting Started with FME and the Web


Tutorial: Getting Started with JSON 


Tutorial: Getting Started with XML


​​​​​​​Connect to Anything: Web Services, FME, and JSON
Tips for Working With the FME Flow REST API in FME Workbench 
​​​​Web Connections and FME 
What is Application Integration?

 

Intermediate Articles

Tutorial: EU INSPIRE Initiative

Data Loading Options With FME Server
​​​​​​​How to Create a WFS Service Using FME Server  
How to Create a WMS Service Using FME Server
​​​​​​​Webhooks and FME Flow 
Working with SOAP Services  


Advanced Articles

Before completing the following articles be sure to work through the Getting Started Articles first.

Tutorial: Creating Web Services using FME Server


Format Documentation

FME has built-in tools to fully connect and integrate with a large host of web and cloud-based services. These readers, writers, and transformers can be accessed and used directly from inside your FME workspaces. 

Some of the most popular web-based formats are…
Amazon DynamoDB Reader/Writer
​​​​​​​Amazon Redshift Reader/Writer
Esri ArcGIS Online (AGOL) Feature Service
​​​​​​​(Esri) ArcGISOnlineConnector 
Microsoft Azure SQL Database Spatial (JDBC) Reader/Writer
Microsoft SharePoint List Reader/Writer
OGC WFS (Web Feature Service) Reader
OGC WMS (Web Map Service) Reader
​​​​​​​Salesforce Reader/Writer
​​​​​​​SAP HANA and Cloud Platform HANA Service Non-Spatial
​​​​​​​Socrata2 (FME Desktop Package) Reader/Writer

For the complete list of natively supported Web and Cloud Services, see Supported Web Service Formats (Select Web & Cloud Services in the category filter).
 

FME Hub  

Don’t see what you’re looking for? Create your own web-based custom transformers and web connections to integrate with almost any third-party application. Many examples can be found on the FME Hub.
Autodesk BIM360 

Esri ArcGIS Online (BatchGeocoder, Geoenricher, Router, ServiceAreaCalculator)
Google (Geocoder, Static Maps)
Pitney Bowes (Spectrum Geocoder)
Pusher.com
Random.org
GeoNames
Microsoft Azure
Microsoft Teams

What3Words
 

​​​​​​​Top Questions and Answers

I have a web service that I want to access with FME. How can I do that? 
​​​​​​​Question of the Week: Web Services, cURL, and the HTTPCaller
​​​​​​​How do I share a Web Connection between users in FME Server?
​​​​​​​How do I reliably connect FME Server to ArcGIS Online?​​​​​​​
Is there a way of working with GraphQL APIs using the HTTPCaller transformation?
​​​​

Additional Resources

Blogs

Connect to APIs and Webhooks in No Time (with No Code) 
​​​​​​​Guide to Creating, Using, and Maintaining Open Data Portals 
​​​​​​​How to Do More With ArcGIS Online 
​​​​​​​Increasing Data Accessibility using Web Applications 
​​​​​​​The Ultimate Guide to APIs 
 

E-Book:

Creating Web Connections in FME Using OAuth 2.0 Authentication ​​​​​​​
The Ultimate Guide to Everything API



Templates

Salesforce 
​​​​​​​GML 
Google


Webinars

​​Application Integration for Smart Cities [0:33:19] 
Efficiently Implementing INSPIRE & Creating INSPIRE Mashups with FME ​​​​​​​ [1:12:47] 
How to Build Complex Calls to APIs (Without Writing Any Code)[0:55:48]
How to Connect to Any REST API (Without Writing Any Code)  [1:02:49]
To Loop or Not to Loop: Overcoming Roadblocks with FME [0:43:52] 
XML-athon with Don and Dean [1:27:56] 

 

Troubleshooting

FME Flow Troubleshooting: REST API 
​​​​​​​FME Server REST API Error Codes
​​​​​​​FME Flow Troubleshooting: Connections (Web and Database) 
Troubleshooting WFS Errors
 

Known Issues

For a list of Known Issues, see the following articles: 2021.x2020.x2019.x2018.x2017.x

See our article for more information about the deprecation of the FME Server JavaScript API  (fmeserver.js).

Support

Can’t find what you are looking for? Search our Community for a related question or post your question in our Forums or contact Support.

Was this article helpful?

Comments

0 comments

Please sign in to leave a comment.