Skip to content
HTTP API handler for geo location tracking and search
Go
Find file
Latest commit e08eb1e @asim asim Strip glog
Failed to load latest commit information.
examples First
handler Strip glog
Dockerfile First
LICENSE Add license
README.md Add diagram
geo-api.png Add diagram
main.go Strip glog

README.md

Geo API

The Geo API provides a REST based api for saving and retrieving geo location data. In the future it may provide more feature rich data not provided directly by the geo-srv service.

Request Flow

Prerequisites

Install Consul https://www.consul.io/intro/getting-started/install.html

Run Consul

$ consul agent -server -bootstrap-expect 1 -data-dir /tmp/consul

Run Service

$ go run main.go 
I0514 23:18:27.880108   35822 rpc_server.go:156] Rpc handler /_rpc
I0514 23:18:27.880536   35822 server.go:90] Starting server go.micro.api.geo id go.micro.api.geo-2526ea49-fa87-11e4-a417-68a86d0d36b6
I0514 23:18:27.880648   35822 rpc_server.go:187] Listening on [::]:54907
I0514 23:18:27.880691   35822 server.go:76] Registering go.micro.api.geo-2526ea49-fa87-11e4-a417-68a86d0d36b6

Run geo-serv Service

$ geo-srv
I0514 23:56:06.938578   36114 rpc_server.go:156] Rpc handler /_rpc
I0514 23:56:06.938845   36114 ingester.go:17] Starting topic geo.location subscriber
I0514 23:56:06.939094   36114 http_broker.go:69] Broker Listening on [::]:55539
I0514 23:56:06.939159   36114 http_broker.go:216] Registering subscriber broker-67a80af9-fa8c-11e4-9c34-68a86d0d36b6
I0514 23:56:06.955284   36114 server.go:90] Starting server go.micro.srv.geo id go.micro.srv.geo-67a7e16d-fa8c-11e4-9c34-68a86d0d36b6
I0514 23:56:06.955401   36114 rpc_server.go:187] Listening on [::]:55545
I0514 23:56:06.955434   36114 server.go:76] Registering go.micro.srv.geo-67a7e16d-fa8c-11e4-9c34-68a86d0d36b6

Run the Micro API

$ micro api
I0514 23:22:07.412956   35843 rpc_server.go:156] Rpc handler /_rpc
I0514 23:22:07.413273   35843 api.go:129] API Rpc handler /rpc
I0514 23:22:07.413416   35843 api.go:141] Listening on [::]:8080
I0514 23:22:07.413449   35843 server.go:90] Starting server go.micro.api id go.micro.api-a800f702-fa87-11e4-af97-68a86d0d36b6
I0514 23:22:07.413537   35843 rpc_server.go:187] Listening on [::]:54931
I0514 23:22:07.413586   35843 server.go:76] Registering go.micro.api-a800f702-fa87-11e4-af97-68a86d0d36b6

Test Service

$ go run geo-api/examples/client_request.go
Saved entity: map[location:[{"latitude": 51.516509, "longitude": 0.124615}] id:[id123] type:[runner]]
Read entity: {"id":"id123","type":"runner","location":{"latitude":51.516509,"longitude":0.124615}}
Search results: [{"id":"id123","type":"runner","location":{"latitude":51.516509,"longitude":0.124615}}]
Something went wrong with that request. Please try again.