My main task today has been to integrate Bing locations API within our platforms JAVA API so that we can do location lookups from the front-end.
To do this I first went and had a read of the documentation from Microsoft, giving myself a good overview of what the task would take, what I'd need to pass as parameters, and then what the response would be.
These are the 2 calls from the above link that I needed, the first being Find a Location by Query, and the second was Find a Location by Point. By using these 2 calls, they would allow me to search for an address using either a search term, like "London" or latitude and longitude values. I went ahead and took a look through these 2 calls to make sure I understood what they did and what was returned, I then copied the URL into my code so that I had it ready.
I then needed to make sure that I have an API key to actually authorize the API. This link showed me how to get that:
Then came the part of using the java restTemplate to call the API, this is quite simple and just requires some parameters, here's my code:
String locationUrl = "http://dev.virtualearth.net/REST/v1/Locations/" + point + "?key=" + key; ResponseEntity<String> result = restTemplate.getForEntity(locationUrl, String.class); return result.getBody();
This then returns the response that is specified on the URL, from there I created an object which had all of the JSON properties so that I could use GSON, and convert the JSON to an object. With that object, I then just picked out the properties I needed and put them in my response object which gets sent to the front-end.