The REST Shell Game

Anybody who has worked with WSDL-based Web Services knows that the loose coupling they promised was a challenge to achieve. One silver lining around this cloud big-vendor SOA was the rise of RESTful approaches to building Services. If you’re building hypermedia applications following REST, the story goes, then the combination of hypermedia-based discovery, opaque URIs, and the uniform interface of REST will provide lightweight loose coupling between clients and resources where Web Services fell short.

Dig a little deeper, however, and the enterprisey world of Web Services soon collides with the Web-centric world of REST. In the enterprise (SOA) context, Services are interfaces to legacy applications and data. They come with structure and complexity that REST’s uniform interface can’t deal with directly. The problem: standard Internet Media Types (formerly called MIME types) don’t provide sufficient semantic detail for typical Service interactions.

Enter the Custom Media Type. Standard types like text/html, application/json, and application/xml don’t provide nearly the semantic detail you require for establishing arbitrary system-to-system interactions with a Service. Even application/atom+xml or application/rdf+xml or the like doesn’t cover it. So you create a Custom Media Type like application/vnd.zapthink.PO+xml, which would represent ZapThink’s custom purchase order format, for example.

What’s next? Publish your Custom Media Type to all potential recipients. Make sure they’re using it properly. So far, so good. But then it comes time to make a tweak to it, so you create a new version, say application/vnd.zapthink.POv2+xml. Only now all your clients break. Tight coupling in action. Oops!

So, have we really solved the coupling problem by moving to REST? Or have we taken the tight coupling pea and moved it under a different shell? Abracadabra! You pays your money, you takes your chances.

Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

The Latest

Windows Logging is one of the vital aspects of any Windows system administration. However, it is mostly overlooked until the system develops a problem. This is because logs contain important information needed to troubleshoot and resolve system issues.

The Fundamentals of Windows Logging

Windows Logging is one of the vital aspects of any Windows system administration. However, it is mostly overlooked until the system develops a problem. This is because logs contain important information needed to troubleshoot and resolve system issues. Without it, tech experts might find it difficult to track a computer’s

Interstitial Ads: Best Practices for Successful Campaigns

Interstitial Ads: Best Practices for Successful Campaigns

Interstitial Ads: Best Practices for Successful Campaigns Interstitial ads are full-screen advertisements that appear to grasp the attention of on-site prospects, creating opportunities for brands seeking effective ways to communicate their proposition of value. With such an attention-grabbing format and high-impact visuals, it’s no wonder why interstitial advertising is proving

positive contribution tech

Technology’s Positive Contributions to Society

Technology has and continues to improve our lives. From the business world to the world of medicine, and our day-to-day lives, you can’t go a day without interacting with at least one form of technology. While some fear technology may be going too far, there are many ways in which

How to Choose From The Best Big Data Platforms in 2023

How to Choose From The Best Big Data Platforms in 2023

As big data continues to become increasingly popular in the business world, companies are always looking for better ways to process and analyze complex data. The process critically depends on the platform that manages and analyzes the data. In this article, we will provide a guide to help you choose

Why transparent code is a good idea

Why Transparent Code is a Good Idea

Code is used to make up the apps and software we use every day. From our favorite social media platforms to our online banking services, code is the framework used to build these tools that help make our lives easier. Code is complex. Software today requires large teams of programmers