So, I just returned from #Gluecon in Broomfield, CO.  What a great tech conference focused on Dev-ops, APIs, cloud, micro services and much more.

I walked away with a lot of homework and a few new tools and APIs. One API mentioned in a talk and one that I built right into an existing app I’m working on is what 3 words, which translates 3 words into a lat/long position and what I thought was a really cool concept.

I’ve also been working on a Strongloop API and wanted to share a rest datasource that I created for connecting to what 3 words.

Available on Github gist

Add this to your server/datasources.json

(fill in your API key under query.key)

    "w3w": {
    "name": "w3w",
    "connector": "rest",
    "operations": [
        "template": {
          "method": "GET",
          "url": "",
          "headers": {
            "accepts": "application/json",
            "content-type": "application/json"
          "query": {
            "position": "{lat},{lng}",
            "lang": "en",
            "key": ""
          "responsePath": "$.words"
        "functions": {
          "geoword": [

And call it from any model,

function getGeoWords(lat, lng){
    var deferred = vow.defer()
      , w3wDS =
      , w3w_url = '';

      w3wDS.geoword(lat, lng ,function(err, result) {
            && result[0] 
            && result[0].length === 3) {
              w3w_url = ''+result[0].join('.');
         } else {
              deferred.reject('No w3w Found: '+err);
     return deferred.promise();