If you have developed an Internet-connected application in the past 10 years, it is likely you have connected to a web service. These invisible applications have saved me from “recreating the wheel” more times than I can recall. The pattern for finding and consuming web services has changed a bit over time and I find that I have a personal catalog of web services that I use as well as sites that catalog them so I can check for new offerings periodically. So, here is my short list of web services and some sites for finding them.
Mashape ( https://www.mashape.com )
This site serves as a sort of clearing house for web-based functionality and contains everything from commercial (read: pay-to-use) and free endpoints. The development team, based out of San Francisco, also serves as a gatekeeper for the API developers by setting up test and production key systems for incoming API consumer developers. So, for instance, I can quickly use my single test key in the provided CURL statements to test things out and get it into my real codebase and then flip on a production key, swap them out in the code, re-test, and release. The search and categorization features of this site make it a great first stop if you are looking for that web service that “just has to exist.” If all of that isn’t enough, they have a great set of stickers you can order (for a penny) to decorate your cube, laptop, desktop, or whatever.
Text-To-Speech ( https://www.mashape.com/montanaflynn/text-to-speech )
One of the great resources I found via Mashape, this endpoint provides a method for taking plain text and retrieving an MP3 of it as spoken in a “Siri-like voice.” There are several great uses for this whereby you can provide the option of having custom user input spoken back to them (or another user) or simply run some of your navigational dialog through the system to provide a fun voice-over to your application usage instructions.
QR Code Generator ( https://www.mashape.com/mutationevent/qr-code-generator )
Have you ever needed to generate a QR code in your own application? There are ways to do this server-side and so on, but this web service provides a super-easy way to send in text, a URL, or phone number and receive a URL for the generated image. Options include specifying the quality (amount of error correction built into the image) and size.
Web Screenshot ( https://www.mashape.com/shepik/web-screenshot )
All of the search engines provide this and now you can too – display an image snapshot of a web site that provides a visual cue to your users as to what they will see when they follow a link. This one will even let you specify the width and height of the resulting image (each must be less than 3000 pixels so as not to cause craziness on their servers). The image is returned as a URL that you can then use to populate an image tag, download, or use otherwise.
ProgrammableWeb ( http://www.programmableweb.com/apis/directory/ )
This is another great catalog site for web services that provides quick searching to get to what you need. One of the features I really like is that you can quickly filter results by the return data format (such as JSON or XML) so you don’t get too excited about a web service only to find that it won’t work in your particular case. One of the real highlights of this one is that it contains entries for all of the major web service players that you typically have to hunt down individually such as Google, Bing, every social media platform ever (or so it seems), etc.
Lingr ( http://lingr.com/help/about )
Weather Underground ( http://www.wunderground.com/weather/api/d/pricing.html )
This list wouldn’t be complete without at least one weather API reference. This one from a well-known organization provides a developer account that is free for up to 500 uses per day and up to 10 per minute. The link (above) gets you full details on it and will get you started on creating (“purchasing” even though it is free) an API authorization key. Fun fact: Weather Underground is now a part of the Weather Channel family of companies as of 2012.
Everyone has their favorites and these are definitely mine. That being said, this list doesn’t even scratch the surface as to what is out there (and free to use). I would love to hear from you on what web services you are using that you keep in your bag of tricks. Drop me a comment below and be sure to provide as much detail as possible – I really will try the suggested services out!