Files
spring-data-examples/rest/starbucks
Oliver Gierke 9a5c270ec2 #139 - Switched to embedded MongoDB for integration tests.
Removed MongoDB dependency by adding Flapdoodle embedded MongoDB. That allows us to get rid of the utility module we had in place for the MongoDB samples guarding the tests to only run when a MongoDB instance is running.

Tweaked Travis setup to not require the MongoDB service anymore.
2015-10-29 17:14:38 +01:00
..
2015-06-16 11:01:59 +02:00

Spring Data REST - Starbucks example

This sample app exposes 10843 Starbucks coffee shops via a RESTful API that allows to access the stores in a hypermedia based way and exposes a resource to execute geo-location search for coffee shops.

Quickstart

  1. Install MongoDB (http://www.mongodb.org/downloads, unzip, run mkdir data, run bin/mongod --dbpath=data)
  2. Build and run the app (mvn spring-boot:run)
  3. Access the root resource (curl http://localhost:8080/api) and traverse hyperlinks.
  4. Or access the location search directly (e.g. http://localhost:8080/api/stores/search/findByAddressLocationNear?location=40.740337,-73.995146&distance=0.5miles)

Web UI

The application provides a custom web UI using the exposed REST API to display the search result on a Google Map. Point you browser to http://localhost:8080. The UI is rendered using Thymeleaf, driven by the StoresController. A tiny JavaScript progressively enhances the view by picking up and enhancing a URI template rendered into the view (<div id="map" data-uri="…" />).

Starbucks Web UI

The API itself can be discovered using the HAL browser pulled in through the corresponding Spring Data REST module (spring-data-rest-hal-browser). It's exposed at the API root at http://localhost:8080/api.

Technologies used

  • Spring Data REST & Spring Data MongoDB
  • MongoDB
  • Spring Batch (to read the CSV file containing the store data and pipe it into MongoDB)
  • Spring Boot