Introduction
Application Programming Interfaces (APIs) are used as a communication medium between clients and servers. They allow applications to talk to one another, transmitting data and services back and forth for a variety of purposes. By leveraging an API, you are taking advantage of existing data, software, functions, or code shared by the developer. When you do, you can benefit in diverse ways, which include:
- Streamlining your workflow
- Direct access to an outside database
- Added functionality to your own application
- Application integration for more fluid information delivery
- + many more!
APIs are quietly running behind the scenes in most applications you use today. If you have ever geotagged a photo on Instagram, received a push notification from Uber, or booked a flight on Expedia, you have been exposed to an API. These applications rely on APIs to enhance their user experience by providing additional functions. For example, Instagram uses the Facebook Places Graph API to access its location database for geotagging photos. By leveraging Facebook’s extensive database created from user check-ins and addresses, Instagram is able to provide location-based services to its users.
In essence, APIs are a gateway to an external server that is granting you access to its contents, sometimes with a special key involved, and sometimes with access restrictions. Given the complexities of an API, the conversation between applications is not simple. Rather, it is an intelligent conversation between intellectuals who have specific questions and answers for one another.
A REpresentational State Transfer (REST) API is one type commonly used in web services allowing users (the client) to send requests and receive responses from the server using HTTP methods such as GET or POST. To process the responses obtained from a REST API, it is important to understand the JSON data type since your data will be returned in a nested structure by default. Also common among web formats is XML. Although it can be returned as a REST response, XML is commonly associated with Simple Object Access Protocol (SOAP) APIs given that it is the only format supported by SOAP. Compared to REST, SOAP APIs are generally used for larger scale web services.
APIs and FME
FME interacts with these APIs through a variety of readers, writers and transformers which limits the need for coding. For web services that have built-in support with FME, their APIs were used in the construction of the tools that allow for seamless integration.
For web service providers that are not natively supported by FME, the HTTPCaller transformer is used to access thousands of other APIs. Whereas the shipped readers, writers, and connectors are your connection point to an API with natively supported web services, this transformer becomes your connection point when it comes to extending FME to work with custom web services. HTTPCaller provides a simple interface for accessing APIs requiring only a URL request and a method. Once the connection is secured, the data obtained from the web can be processed in endless ways using additional transformers in FME Form or even the FME Flow platform to automate workflows.
Get the full overview of Working with Web Services and FME.
Examples of how APIs are used with FME
-
HTTP Requests with the HTTPCaller
- Deep dive into different HTTP Request types and how to format them in FME Workbench
-
Making a GET Request with the HTTPCaller
- Make your first GET Request.
-
Authenticating and Extracting Information from API calls with the HTTPCaller
- Learn how to leverage the features in the HTTPCaller to access a REST API.
-
Download Files from a REST API Using FME
- Learn how to use FME to download files from a REST API.
-
Advanced API Calls
- Learn how to access real-time data using three different transformers in FME.
Resources
- Article: Getting Started with the Google Calendar API
- Guide: Working with Web Services and FME
- Guide: Automating Workflow Submission from a Third Party Application To FME Flow
- Blog: The Ultimate Guide to APIs
- Blog: Connect to APIs and Webhooks in No Time (with No Code)
- Blog: APIs: What They Are & Why They Matter for Your Data
- Webinar: How to Connect to Any REST API (Without Writing Any Code)
- Webinar: How to Build Complex Calls to APIs (Without Writing Any Code)
- Webinar: Cityworks Application Integration
- Training course: Getting Started with the FME Flow REST API
Tips and Tricks
- Use a REST Client tool such as Postman to practice sending requests if you are new to the REST world. It has a user-friendly interface that will pinpoint errors quickly while also allowing you to view the response in raw and structured formats. If it runs in Postman, it should run in FME.
- If you are encountering errors with an API, review the accompanying documentation. A well-documented API should include enough information to guide you in the right direction when sending and receiving requests. Be aware of response codes that indicate if your request was fulfilled or not.
- FME Flow has its own API. Learn more at Getting Started with the FME Flow REST API
Comments
0 comments
Please sign in to leave a comment.