Skip to content
Justin Forest edited this page Apr 13, 2024 · 16 revisions

Table of Contents:

Add a tree

Example request:

POST /v1/trees HTTP/1.0
Authorization: Bearer ..token..

{
  "lat": 1.2,
  "lon": 3.4,
  "name": "Big Oak",
  "height": 25.0,
  "circumference": "3.72",
  "diameter": "15",
  "state": "healthy",
}

Example response:

202 OK HTTP/1.1

Get tree details

Example request:

GET /v1/trees/123 HTTP/1.0

Example response:

200 OK HTTP/1.0
Content-Type: application/json

{
  "lat": 1.2,
  "lon": 3.4,
  "name": "Big Oak",
  "height": 25.0,
  "circumference": "3.72",
  "diameter": "15",
  "state": "healthy",
}

List trees

Example request:

GET /v1/trees HTTP/1.0

Example response:

200 OK HTTP/1.1
Content-Type: application/json

{
  "trees": [
    {
      "id": 1,
      "lat": 37.7749,
      "lon": -122.4194
    },
    {
      "id": 2,
      "lat": 37.7749,
      "lon": -122.4194
    },
    {
      "id": 3,
      "lat": 37.7749,
      "lon": -122.4194
    }
  ]
}

Update tree properties

This call can change numeric properties, such as name, height, etc. For changing the location, a different endpoint should be used, see below.

Example request:

PUT /v1/trees/{id}
Content-Type: application/json

{
  "name": "Big Oak",
  "height": 27.0,
  "circumference": 1.4,
  "diameter": 17.0,
  "state": "sick",
}

Example response:

202 Accepted HTTP/1.1

Update tree position

Example request:

PUT /v1/trees/{id}/position
Content-Type: application/json

{
  "lat": 1.2,
  "lon": 3.4
}

Example response:

202 Accepted HTTP/1.1

Login with Google

This requires an access token received from Google. The token will be verified, user account will be created (if needed), then a local authentication token will be returned.

Example request:

POST /v1/login/google HTTP/1.1
Content-Type: application/json

{
  "token": "foobar"
}

Example response:

200 OK HTTP/1.1
Content-Type: application/json

{
  "token": "secret",
  "name": "Alice",
  "picture": "https://..."
}
Clone this wiki locally