Quixote is the search service that powers CityShelf, a web application that makes searching for books through local and independent booksellers quick and easy.
Content-Type for all requests/responses is application/JSON.
Method | Path | Response |
---|---|---|
GET | /books/?field=value | Books where field = value |
GET | /stores/?field=value | Stores where field = value |
For example,
λ curl http://localhost:8080/books/?query=Omon+Ra&latitude=40.805135&longitude=-73.964991
will return a JSON representation of all books matching the query "Omon Ra" from independent bookstores in New York City, and
λ curl http://localhost:8080/stores/?latitude=40.805135&longitude=-73.964991
will return a JSON representation of bookstores near 40.805135˚N 73.964991˚W.
We currently support Boston, Chicago, Minneapolis, New York, Portland, and Seattle.
Quixote is a Clojure API (generated via Enlive, Liberator, and Compojure). The overall CityShelf application is an isomorphic Clojure(Script) stack; the Cityshelf repository contains the ClojureScript web client. To run this service locally, you'll need:
- Clojure 1.7
- Leiningen 2
- Clone the repository (
λ git clone [email protected]:ericqweinstein/quixote.git
) - Install dependencies (
λ lein deps
) - Start the web server on port 8080 (
λ lein run
)
Quixote currently lives on Heroku at http://cityshelf-api.herokuapp.com/.
- Test (
λ lein midje
) - Deploy (
λ git push heroku master
)
- Branch (
λ git checkout -b fancy-new-feature
) - Commit (
λ git commit -m "Fanciness!"
) - Lint (
λ lein lint
) - Test (
λ lein midje
) - Push (
λ git push origin fancy-new-feature
) - Ye Olde Pulle Request
You can generate documentation with λ lein doc
.
MIT (see LICENSE).