This API uses HAL and the Spring HATEOAS dialect. If you are unfamiliar with Level 3 - Hypermedia Controls in a Rest API I highly recomment to watch this tutorial.

Entity

Skylar uses a DAO structure which will be referred as Entity in this documentation.

{
    "id": 1,
    "uuid" : "00000000-eaf1-4c58-baaf-e29b38c961f6",
    "logstash" : "2017-04-01T00:00:00+02:00",
    "description" : "Thomas",
    "...": "..."
}

This API mainly focuses on performing CRUD operations to these Entities which share the following properties

Name Type Usage

id

Long

local reference id. E.g. Neo4j database id which is ONLY unique in Neo4j scope.

uuid

UUID

global reference id. Unique across the application scope. E.g. when using this identifier to search in Neo4j and Elasticsearch. You will get the Neo4j and Elasticsearch representation of the same Entity

logstash

String

Log or creation date of the Entity. For more information see Logstash or ElasticsearchUtil.

description

String

Description or name of a Entity

Index

Response fields

Path Type Description

_links

Object

Links to other resources

Example request

$ curl 'http://skylar.livingfire.de/api' -i

Example response

HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 812

{
  "_links" : {
    "listdatas" : {
      "href" : "http://skylar.livingfire.de/api/listdatas{?page,size,sort}",
      "templated" : true
    },
    "settings" : {
      "href" : "http://skylar.livingfire.de/api/settings{?page,size,sort}",
      "templated" : true
    },
    "users" : {
      "href" : "http://skylar.livingfire.de/api/users{?page,size,sort}",
      "templated" : true
    },
    "javascript" : {
      "href" : "http://skylar.livingfire.de/api/javascript"
    },
    "export" : {
      "href" : "http://skylar.livingfire.de/api/export"
    },
    "import" : {
      "href" : "http://skylar.livingfire.de/api/import"
    },
    "selenium" : {
      "href" : "http://skylar.livingfire.de/api/selenium"
    },
    "profile" : {
      "href" : "http://skylar.livingfire.de/api/profile"
    }
  }
}
Relation Description

users

See Users

listdatas

See ListDatas

settings

See Settings

javascript

Helper methods Javascript

export

Helper methods Export

import

Helper methods Import

selenium

See Selenium

profile

The Application-Level Profile Semantics (ALPS)

Error

Response fields

Path Type Description

error

String

The HTTP status code that occurred

message

String

A massage like Bad Request

path

String

The path to which the request was made

status

Number

The HTTP status code like 400

timestamp

Number

The time in milliseconds at which the error occurred

Example request

$ curl 'http://skylar.livingfire.de/error' -i

Example response

HTTP/1.1 400 Bad Request
Content-Type: application/json;charset=UTF-8
Content-Length: 140

{
  "timestamp" : 1507046571081,
  "status" : 400,
  "error" : "Bad Request",
  "message" : "Bad Request",
  "path" : "/repository/fooBar"
}

User

The information stored for a Skylar User Account.

Details

Example request

$ curl 'http://skylar.livingfire.de/api/profile/users' -i

Create

A POST request will create a User.

Example request

$ curl 'http://skylar.livingfire.de/api/users' -i -X POST \
    -H 'Content-Type: application/hal+json' \
    -d '{
  "id" : null,
  "uuid" : "00000000-eaf1-4c58-baaf-e29b38c961f6",
  "logstash" : "2017-04-01T00:00:00+02:00",
  "description" : "Thomas",
  "settings" : [ ]
}'

Example response

HTTP/1.1 201 Created
Location: http://skylar.livingfire.de/api/users/2

Retrieve

A GET request will retrieve a User.

Response fields

Path Type Description

uuid

String

Java UUID

logstash

String

yyyy-MM-dd’T’HH:mm:ssXXX SimpleDateFormat

description

String

Description or name

_links

Object

Links to other resources

Example request

$ curl 'http://skylar.livingfire.de/api/users/2' -i

Example response

HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 394

{
  "uuid" : "00000000-eaf1-4c58-baaf-e29b38c961f6",
  "logstash" : "2017-04-01T00:00:00+02:00",
  "description" : "Thomas",
  "_links" : {
    "self" : {
      "href" : "http://skylar.livingfire.de/api/users/2"
    },
    "user" : {
      "href" : "http://skylar.livingfire.de/api/users/2"
    },
    "settings" : {
      "href" : "http://skylar.livingfire.de/api/users/2/settings"
    }
  }
}
Relation Description

self

Canonical link for this resource

user

This User

settings

See Settings

Update

A PATCH request will update a User.

Example request

$ curl 'http://skylar.livingfire.de/api/users/2' -i -X PATCH \
    -H 'Content-Type: application/hal+json' \
    -d '{
  "description" : "Skylar"
}'

Example response

HTTP/1.1 204 No Content

Delete

A DELETE request will delete a User.

Example request

$ curl 'http://skylar.livingfire.de/api/users/2' -i -X DELETE \
    -H 'Content-Type: application/hal+json'

Example response

HTTP/1.1 204 No Content

Details

Example request
$ curl 'http://skylar.livingfire.de/api/users/search' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 394

{
  "_links" : {
    "findByUuid" : {
      "href" : "http://skylar.livingfire.de/api/users/search/findByUuid{?uuid}",
      "templated" : true
    },
    "findByDescription" : {
      "href" : "http://skylar.livingfire.de/api/users/search/findByDescription{?description}",
      "templated" : true
    },
    "self" : {
      "href" : "http://skylar.livingfire.de/api/users/search"
    }
  }
}

findByUuid

A GET request will retrieve a User.

Request parameters
Parameter Description

uuid

Java UUID

Response fields
Path Type Description

uuid

String

Java UUID

logstash

String

yyyy-MM-dd’T’HH:mm:ssXXX SimpleDateFormat

description

String

Description or name

_links

Object

Links to other resources

Example request
$ curl 'http://skylar.livingfire.de/api/users/search/findByUuid?uuid=00000000-eaf1-4c58-baaf-e29b38c961f6' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 394

{
  "uuid" : "00000000-eaf1-4c58-baaf-e29b38c961f6",
  "logstash" : "2017-04-01T00:00:00+02:00",
  "description" : "Skylar",
  "_links" : {
    "self" : {
      "href" : "http://skylar.livingfire.de/api/users/2"
    },
    "user" : {
      "href" : "http://skylar.livingfire.de/api/users/2"
    },
    "settings" : {
      "href" : "http://skylar.livingfire.de/api/users/2/settings"
    }
  }
}
Relation Description

self

Canonical link for this resource

user

This User

settings

See Settings

findByDescription

A GET request will retrieve a array of User.

Request parameters
Parameter Description

description

Description or name

Response fields
Path Type Description

_embedded.users

Array

An array of User

_links

Object

Links to other resources

Example request
$ curl 'http://skylar.livingfire.de/api/users/search/findByDescription?description=Thomas' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 164

{
  "_embedded" : {
    "users" : [ ]
  },
  "_links" : {
    "self" : {
      "href" : "http://skylar.livingfire.de/api/users/search/findByDescription"
    }
  }
}
Relation Description

self

Canonical link for this resource

Users

Listing

A GET request will retrieve a paginated view of all User.

Response fields

Path Type Description

_embedded.users

Array

An array of User

_links

Object

Links to other resources

page

Object

paging information

Example request

$ curl 'http://skylar.livingfire.de/api/users' -i

Example response

HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 910

{
  "_embedded" : {
    "users" : [ {
      "uuid" : "00000000-eaf1-4c58-baaf-e29b38c961f6",
      "logstash" : "2017-04-01T00:00:00+02:00",
      "description" : "Skylar",
      "_links" : {
        "self" : {
          "href" : "http://skylar.livingfire.de/api/users/2"
        },
        "user" : {
          "href" : "http://skylar.livingfire.de/api/users/2"
        },
        "settings" : {
          "href" : "http://skylar.livingfire.de/api/users/2/settings"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "http://skylar.livingfire.de/api/users{?page,size,sort}",
      "templated" : true
    },
    "profile" : {
      "href" : "http://skylar.livingfire.de/api/profile/users"
    },
    "search" : {
      "href" : "http://skylar.livingfire.de/api/users/search"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 1,
    "totalPages" : 1,
    "number" : 0
  }
}
Relation Description

self

Canonical link for this resource

profile

The Application-Level Profile Semantics (ALPS)

search

Canonical link to search resources

Setting

Details

Example request

$ curl 'http://skylar.livingfire.de/api/profile/settings' -i

Create

A POST request will create a Setting.

Example request

$ curl 'http://skylar.livingfire.de/api/settings' -i -X POST \
    -H 'Content-Type: application/hal+json' \
    -d '{
  "id" : null,
  "uuid" : "00000000-0004-4a72-8a2b-49e51968e3b6",
  "logstash" : "2017-04-01T00:00:00+02:00",
  "description" : "de",
  "dimension" : "ttsLanguage"
}'

Example response

HTTP/1.1 201 Created
Location: http://skylar.livingfire.de/api/settings/1

Retrieve

A GET request will retrieve a Setting.

Response fields

Path Type Description

uuid

String

Java UUID

logstash

String

yyyy-MM-dd’T’HH:mm:ssXXX SimpleDateFormat

description

String

Description or name

dimension

String

Name of a dimension in a matrix. E.g. distance, time, x, y, z, …​

_links

Object

Links to other resources

Example request

$ curl 'http://skylar.livingfire.de/api/settings/1' -i

Example response

HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 338

{
  "uuid" : "00000000-0004-4a72-8a2b-49e51968e3b6",
  "logstash" : "2017-04-01T00:00:00+02:00",
  "description" : "de",
  "dimension" : "ttsLanguage",
  "_links" : {
    "self" : {
      "href" : "http://skylar.livingfire.de/api/settings/1"
    },
    "setting" : {
      "href" : "http://skylar.livingfire.de/api/settings/1"
    }
  }
}
Relation Description

self

Canonical link for this resource

setting

This Setting

Update

A PATCH request will update a Setting.

Example request

$ curl 'http://skylar.livingfire.de/api/settings/1' -i -X PATCH \
    -H 'Content-Type: application/hal+json' \
    -d '{
  "description" : "en"
}'

Example response

HTTP/1.1 204 No Content

Delete

A DELETE request will delete a Setting.

Example request

$ curl 'http://skylar.livingfire.de/api/settings/1' -i -X DELETE \
    -H 'Content-Type: application/hal+json'

Example response

HTTP/1.1 204 No Content

Details

Example request
$ curl 'http://skylar.livingfire.de/api/settings/search' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 403

{
  "_links" : {
    "findByDescription" : {
      "href" : "http://skylar.livingfire.de/api/settings/search/findByDescription{?description}",
      "templated" : true
    },
    "findByUuid" : {
      "href" : "http://skylar.livingfire.de/api/settings/search/findByUuid{?uuid}",
      "templated" : true
    },
    "self" : {
      "href" : "http://skylar.livingfire.de/api/settings/search"
    }
  }
}

findByUuid

A GET request will retrieve a Setting.

Request parameters
Parameter Description

uuid

Java UUID

Response fields
Path Type Description

uuid

String

Java UUID

logstash

String

yyyy-MM-dd’T’HH:mm:ssXXX SimpleDateFormat

description

String

Description or name

dimension

String

Name of a dimension in a matrix. E.g. distance, time, x, y, z, …​

_links

Object

Links to other resources

Example request
$ curl 'http://skylar.livingfire.de/api/settings/search/findByUuid?uuid=00000000-0004-4a72-8a2b-49e51968e3b6' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 338

{
  "uuid" : "00000000-0004-4a72-8a2b-49e51968e3b6",
  "logstash" : "2017-04-01T00:00:00+02:00",
  "description" : "en",
  "dimension" : "ttsLanguage",
  "_links" : {
    "self" : {
      "href" : "http://skylar.livingfire.de/api/settings/1"
    },
    "setting" : {
      "href" : "http://skylar.livingfire.de/api/settings/1"
    }
  }
}
Relation Description

self

Canonical link for this resource

setting

This Setting

findByDescription

A GET request will retrieve a array of Setting.

Request parameters
Parameter Description

description

Description or name

Response fields
Path Type Description

_embedded.settings

Array

An array of Setting

_links

Object

Links to other resources

Example request
$ curl 'http://skylar.livingfire.de/api/settings/search/findByDescription?description=de' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 170

{
  "_embedded" : {
    "settings" : [ ]
  },
  "_links" : {
    "self" : {
      "href" : "http://skylar.livingfire.de/api/settings/search/findByDescription"
    }
  }
}
Relation Description

self

Canonical link for this resource

Settings

Listing

A GET request will retrieve a paginated view of all Setting.

Response fields

Path Type Description

_embedded.settings

Array

An array of Setting

_links

Object

Links to other resources

page

Object

paging information

Example request

$ curl 'http://skylar.livingfire.de/api/settings' -i

Example response

HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 858

{
  "_embedded" : {
    "settings" : [ {
      "uuid" : "00000000-0004-4a72-8a2b-49e51968e3b6",
      "logstash" : "2017-04-01T00:00:00+02:00",
      "description" : "en",
      "dimension" : "ttsLanguage",
      "_links" : {
        "self" : {
          "href" : "http://skylar.livingfire.de/api/settings/1"
        },
        "setting" : {
          "href" : "http://skylar.livingfire.de/api/settings/1"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "http://skylar.livingfire.de/api/settings{?page,size,sort}",
      "templated" : true
    },
    "profile" : {
      "href" : "http://skylar.livingfire.de/api/profile/settings"
    },
    "search" : {
      "href" : "http://skylar.livingfire.de/api/settings/search"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 1,
    "totalPages" : 1,
    "number" : 0
  }
}
Relation Description

self

Canonical link for this resource

profile

The Application-Level Profile Semantics (ALPS)

search

Canonical link to search resources

ListData

Details

Example request

$ curl 'http://skylar.livingfire.de/api/profile/listdatas' -i

Create

A POST request will create a ListData.

Example request

$ curl 'http://skylar.livingfire.de/api/listdatas' -i -X POST \
    -H 'Content-Type: application/hal+json' \
    -d '{
  "id" : null,
  "uuid" : "dc06c6d1-39d9-4869-8628-938dd0fa0375",
  "logstash" : "2017-04-01T00:00:00+02:00",
  "description" : "beautiful weather and good run",
  "group" : "running",
  "entryDate" : 1507046571242,
  "dimension" : "distance",
  "unit" : "km",
  "value" : "13"
}'

Example response

HTTP/1.1 201 Created
Location: http://skylar.livingfire.de/api/listdatas/0

Retrieve

A GET request will retrieve a ListData.

Response fields

Path Type Description

uuid

String

Java UUID

logstash

String

yyyy-MM-dd’T’HH:mm:ssXXX SimpleDateFormat

description

String

Description or name

dimension

String

Name of a dimension in a matrix. E.g. distance, time, x, y, z, …​

group

String

The group this value belongs to. This can be thougt of a as a another dimension in a matrix

entryDate

String

creation date

unit

String

A unit of measurement like km, s, ccm

value

String

Value like 42, 3.1415, 'Hello World!'

_links

Object

Links to other resources

Example request

$ curl 'http://skylar.livingfire.de/api/listdatas/0' -i

Example response

HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 472

{
  "uuid" : "dc06c6d1-39d9-4869-8628-938dd0fa0375",
  "logstash" : "2017-04-01T00:00:00+02:00",
  "description" : "beautiful weather and good run",
  "group" : "running",
  "entryDate" : "2017-10-03T16:02:51.000+0000",
  "dimension" : "distance",
  "unit" : "km",
  "value" : "13",
  "_links" : {
    "self" : {
      "href" : "http://skylar.livingfire.de/api/listdatas/0"
    },
    "listdata" : {
      "href" : "http://skylar.livingfire.de/api/listdatas/0"
    }
  }
}
Relation Description

self

Canonical link for this resource

listdata

This ListData

Update

A PATCH request will update a ListData.

Example request

$ curl 'http://skylar.livingfire.de/api/listdatas/0' -i -X PATCH \
    -H 'Content-Type: application/hal+json' \
    -d '{
  "description" : "bad rain on run"
}'

Example response

HTTP/1.1 204 No Content

Delete

A DELETE request will delete a ListData.

Example request

$ curl 'http://skylar.livingfire.de/api/listdatas/0' -i -X DELETE \
    -H 'Content-Type: application/hal+json'

Example response

HTTP/1.1 204 No Content

Details

Example request
$ curl 'http://skylar.livingfire.de/api/listdatas/search' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 835

{
  "_links" : {
    "findByGroup" : {
      "href" : "http://skylar.livingfire.de/api/listdatas/search/findByGroup{?group}",
      "templated" : true
    },
    "findByUuid" : {
      "href" : "http://skylar.livingfire.de/api/listdatas/search/findByUuid{?uuid}",
      "templated" : true
    },
    "findByDescription" : {
      "href" : "http://skylar.livingfire.de/api/listdatas/search/findByDescription{?description}",
      "templated" : true
    },
    "groupDimension" : {
      "href" : "http://skylar.livingfire.de/api/listdatas/search/groupDimension"
    },
    "findByGroupAndDimension" : {
      "href" : "http://skylar.livingfire.de/api/listdatas/search/findByGroupAndDimension{?group,dimension}",
      "templated" : true
    },
    "self" : {
      "href" : "http://skylar.livingfire.de/api/listdatas/search"
    }
  }
}

findByUuid

A GET request will retrieve a ListData.

Request parameters
Parameter Description

uuid

Java UUID

Response fields
Path Type Description

uuid

String

Java UUID

logstash

String

yyyy-MM-dd’T’HH:mm:ssXXX SimpleDateFormat

description

String

Description or name

dimension

String

Name of a dimension in a matrix. E.g. distance, time, x, y, z, …​

group

String

The group this value belongs to. This can be thougt of a as a another dimension in a matrix

entryDate

String

creation date

unit

String

A unit of measurement like km, s, ccm

value

String

Value like 42, 3.1415, 'Hello World!'

_links

Object

Links to other resources

Example request
$ curl 'http://skylar.livingfire.de/api/listdatas/search/findByUuid?uuid=dc06c6d1-39d9-4869-8628-938dd0fa0375' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 457

{
  "uuid" : "dc06c6d1-39d9-4869-8628-938dd0fa0375",
  "logstash" : "2017-04-01T00:00:00+02:00",
  "description" : "bad rain on run",
  "group" : "running",
  "entryDate" : "2017-10-03T16:02:51.000+0000",
  "dimension" : "distance",
  "unit" : "km",
  "value" : "13",
  "_links" : {
    "self" : {
      "href" : "http://skylar.livingfire.de/api/listdatas/0"
    },
    "listdata" : {
      "href" : "http://skylar.livingfire.de/api/listdatas/0"
    }
  }
}
Relation Description

self

Canonical link for this resource

listdata

This ListData

findByDescription

A GET request will retrieve a array of ListData.

Request parameters
Parameter Description

description

Description or name

Response fields
Path Type Description

_embedded.listdatas

Array

An array of ListData

_links

Object

Links to other resources

Example request
$ curl 'http://skylar.livingfire.de/api/listdatas/search/findByDescription?description=beautiful+weather+and+good+run' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 172

{
  "_embedded" : {
    "listdatas" : [ ]
  },
  "_links" : {
    "self" : {
      "href" : "http://skylar.livingfire.de/api/listdatas/search/findByDescription"
    }
  }
}
Relation Description

self

Canonical link for this resource

ListDatas

Listing

A GET request will retrieve a paginated view of all Setting.

Response fields

Path Type Description

_embedded.settings

Array

An array of Setting

_links

Object

Links to other resources

page

Object

paging information

Example request

$ curl 'http://skylar.livingfire.de/api/settings' -i

Example response

HTTP/1.1 200 OK
Content-Type: application/hal+json;charset=UTF-8
Content-Length: 858

{
  "_embedded" : {
    "settings" : [ {
      "uuid" : "00000000-0004-4a72-8a2b-49e51968e3b6",
      "logstash" : "2017-04-01T00:00:00+02:00",
      "description" : "en",
      "dimension" : "ttsLanguage",
      "_links" : {
        "self" : {
          "href" : "http://skylar.livingfire.de/api/settings/1"
        },
        "setting" : {
          "href" : "http://skylar.livingfire.de/api/settings/1"
        }
      }
    } ]
  },
  "_links" : {
    "self" : {
      "href" : "http://skylar.livingfire.de/api/settings{?page,size,sort}",
      "templated" : true
    },
    "profile" : {
      "href" : "http://skylar.livingfire.de/api/profile/settings"
    },
    "search" : {
      "href" : "http://skylar.livingfire.de/api/settings/search"
    }
  },
  "page" : {
    "size" : 20,
    "totalElements" : 1,
    "totalPages" : 1,
    "number" : 0
  }
}
Relation Description

self

Canonical link for this resource

profile

The Application-Level Profile Semantics (ALPS)

search

Canonical link to search resources

JavaScript

Helper methods for JavaScript. A GET request will list the index.

Example request

$ curl -i http://skylar.livingfire.de/api/javascript

Response fields

Path Type Description

_links

Object

Links to other resources

Relation Description

self

Canonical link for this resource

entityProperties

See Entity properties

ttsGreeting

See TTS greeting

ttsKanboardOverdue

See Kanboard overdue

emailKanboardShopping

See Kanboard shopping email

ttsKanboardShopping

See Kanboard shopping TTS

ttsWeather

See TTS Weather

ttsGoogleCalendar

See TTS Google Calendar

listdataGroupDimensions

See Listdata Group-Dimension Mapping

Entity properties

A GET request will retrieve properties needed to create a new Skylar entity.

Response fields
Path Type Description

uuid

String

Java UUID

logstash

String

yyyy-MM-dd’T’HH:mm:ssXXX SimpleDateFormat

Example request
$ curl 'http://skylar.livingfire.de/api/javascript/entityProperties' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 86

{"uuid":"79e8bdea-da15-4869-be5f-c31296f16c6e","logstash":"2017-07-01T22:44:25+02:00"}

TTS Greeting

A GET will trigger a TTS greeting.

Response fields
Path Type Description

status

Number

a HTTP status code like 201

code

String

native Skylar code like 005001 see SkylarCodeConstant.java

userMessage

String

Message shown in the user interface

developerMessage

String

Additional information for debugging

Example request
$ curl 'http://skylar.livingfire.de/api/javascript/ttsGreeting' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 118

{"status":201,"code":"005001","userMessage":"Text-To-Speech created","developerMessage":"message sent into JMS queue"}

Kanboard overdue

A GET will trigger a TTS output of all overdue kanboard tasks in Skylar.

Response fields
Path Type Description

status

Number

a HTTP status code like 201

code

String

native Skylar code like 005001 see SkylarCodeConstant.java

userMessage

String

Message shown in the user interface

developerMessage

String

Additional information for debugging

Example request
$ curl 'http://skylar.livingfire.de/api/javascript/ttsKanboardOverdue' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 118

{"status":201,"code":"005001","userMessage":"Text-To-Speech created","developerMessage":"message sent into JMS queue"}

Kanboard shopping TTS

A GET will trigger a TTS output with the shopping list.

Response fields
Path Type Description

status

Number

a HTTP status code like 201

code

String

native Skylar code like 005001 see SkylarCodeConstant.java

userMessage

String

Message shown in the user interface

developerMessage

String

Additional information for debugging

Example request
$ curl 'http://skylar.livingfire.de/api/javascript/ttsKanbaordShopping' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 118

{"status":201,"code":"005001","userMessage":"Text-To-Speech created","developerMessage":"message sent into JMS queue"}

Kanboard shopping email

A GET will trigger a Email with the shopping list.

Response fields
Path Type Description

status

Number

a HTTP status code like 201

code

String

native Skylar code like 005001 see SkylarCodeConstant.java

userMessage

String

Message shown in the user interface

developerMessage

String

Additional information for debugging

Example request
$ curl 'http://skylar.livingfire.de/api/javascript/emailKanbaordShopping' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 95

{"status":201,"code":"004001","userMessage":"email sent OK","developerMessage":"email sent OK"}

TTS Weather

A GET will trigger a TTS output of a weather report.

Response fields
Path Type Description

status

Number

a HTTP status code like 201

code

String

native Skylar code like 005001 see SkylarCodeConstant.java

userMessage

String

Message shown in the user interface

developerMessage

String

Additional information for debugging

Example request
$ curl 'http://skylar.livingfire.de/api/javascript/ttsWeather' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 118

{"status":201,"code":"005001","userMessage":"Text-To-Speech created","developerMessage":"message sent into JMS queue"}

TTS Google Calendar

A GET will trigger a TTS output of a Google Calendar events overdue report.

Response fields
Path Type Description

status

Number

a HTTP status code like 201

code

String

native Skylar code like 005001 see SkylarCodeConstant.java

userMessage

String

Message shown in the user interface

developerMessage

String

Additional information for debugging

Example request
$ curl 'http://skylar.livingfire.de/api/javascript/ttsGoogleCalendar' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 118

{"status":201,"code":"005001","userMessage":"Text-To-Speech created","developerMessage":"message sent into JMS queue"}

Listdata Group-Dimension Mapping

A GET will retrieve a mapping of all dimensions to their coresponding groups. Group and dimension in this context mean the properties: Listdata.group and Listdata.dimension

Response fields
Path Type Description

[].group

String

group

[].dimension

String

dimension

Example request
$ curl 'http://skylar.livingfire.de/api/javascript/listdataGroupDimensions' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 84

[{"group":"body","dimension":"bodyWeight"},{"group":"body","dimension":"heartrate"}]

Import

A GET request will list the index.

Example request

$ curl -i http://skylar.livingfire.de/api/import

Response fields

Path Type Description

_links

Object

Links to other resources

Relation Description

self

Canonical link for this resource

importOruxmaps

See Oruxmaps

importLibra

See Libra

importMicrolife

See Microlife

importGarmin

See Garmin

Oruxmaps

A POST request will import a Oruxmaps KML file.

Example request
$ curl -i --form file=@oruxmaps.kml http://skylar.livingfire.de/api/import/oruxmaps
Example response
HTTP/1.1 201 OK
Content-Type: application/json;charset=UTF-8

{
  "status" : 201,
  "code" : "009004",
  "userMessage" : "upload oruxmaps successful: oruxmaps.kml",
  "developerMessage" : "upload oruxmaps successful",
  "moreInfoURL" : "https://github.com/phoen1x/skylar-the-scholar/blob/master/book_en.pdf"
}

Libra

A POST request will import a Libra CSV file.

Example request
$ echo '#Version:5
#Units:kg

#date;weight;weight trend;body fat;body fat trend;comment
2017-04-01 00:00:00;75.1;75.1;;;' \
    > libra.csv

$ curl -i --form file=@libra.csv http://skylar.livingfire.de/api/import/libra
Example response
HTTP/1.1 201 OK
Content-Type: application/json;charset=UTF-8

{
  "status" : 201,
  "code" : "009007",
  "userMessage" : "libra import successful: libra.csv",
  "developerMessage" : "libra import successful",
  "moreInfoURL" : "https://github.com/phoen1x/skylar-the-scholar/blob/master/book_en.pdf"
}

Microlife

A POST request will import a Microlife CSV file.

Example request
$ echo 'Name : Skylar
ID : skylar
Geschlecht : Weiblich
Geburtsdatum : 1. April 2010
Datum,Zeit,Systole,Diastole,Puls,Arrhythmie,MAM
"01.04.17","21:37","120","80","70","",""' \
    > microlife.csv

$ curl -i --form file=@microlife.csv http://skylar.livingfire.de/api/import/microlife
Example response
HTTP/1.1 201 OK
Content-Type: application/json;charset=UTF-8

{
  "status" : 201,
  "code" : "009009",
  "userMessage" : "microlife import successful: microlife.csv",
  "developerMessage" : "microlife import successful",
  "moreInfoURL" : "https://github.com/phoen1x/skylar-the-scholar/blob/master/book_en.pdf"
}

Garmin

A GET request will list the index.

Example request
$ curl -i http://skylar.livingfire.de/api/import/garmin
Response fields
Path Type Description

_links

Object

Links to other resources

Relation Description

self

Canonical link for this resource

importGarminActivity

See Garmin Activity

Activity

A POST request will import a Training Center XML (TCX) file.

Example request
$ # download sample https://developer.garmin.com/garmin-connect-api/sample-data/
$ curl https://developer.garmin.com/downloads/connect-api/sample_file.tcx > activity.tcx
$ curl -i --form file=@activity.tcx http://skylar.livingfire.de/api/import/garmin/activity
Example response
HTTP/1.1 201 OK
Content-Type: application/json;charset=UTF-8

{
  "status" : 201,
  "code" : "009005",
  "userMessage" : "garmin activity import successful: activity.tcx",
  "developerMessage" : "garmin activity import successful",
  "moreInfoURL" : "https://github.com/phoen1x/skylar-the-scholar/blob/master/book_en.pdf"
}

Export

A GET request will list the index.

Example request

$ curl -i http://skylar.livingfire.de/api/export

Response fields

Path Type Description

_links

Object

Links to other resources

Relation Description

self

Canonical link for this resource

exportDatabase

See Export Database

Database

A GET request will download the database as a ZIP file.

Example request
$ curl -D headers.txt -o skylar_database.zip http://skylar.livingfire.de/api/export/database
$ cat headers.txt
Response Header
HTTP/1.1 201
Content-Disposition: attachment; filename="20160401_1706_skylar_database.zip"

Selenium

A GET request will list the index.

Example request

$ curl -i http://skylar.livingfire.de/api/selenium

Response fields

Path Type Description

_links

Object

Links to other resources

Relation Description

self

Canonical link for this resource

seleniumWebpageOpen

See web page open

seleniumWebRadio

See web radio

seleniumSessionClose

See session close

seleniumSessionHtml

See session html

web page open

A GET request will open a url in a web browser session.

Request parameters
Parameter Description

open

a URL like https://www.youtube.com/

Response fields
Path Type Description

status

Number

a HTTP status code like 201

code

String

native Skylar code like 005001 see SkylarCodeConstant.java

userMessage

String

Message shown in the user interface

developerMessage

String

Additional information for debugging

Example request
$ curl 'http://skylar.livingfire.de/api/selenium/webpage?open=https://www.youtube.com/' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 115

{"status":200,"code":"011001","userMessage":"selenium webpage opened","developerMessage":"selenium webpage opened"}

web radio

A GET request will start the web radio.

Response fields
Path Type Description

status

Number

a HTTP status code like 201

code

String

native Skylar code like 005001 see SkylarCodeConstant.java

userMessage

String

Message shown in the user interface

developerMessage

String

Additional information for debugging

Example request
$ curl 'http://skylar.livingfire.de/api/selenium/webRadio' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 115

{"status":200,"code":"011001","userMessage":"selenium webpage opened","developerMessage":"selenium webpage opened"}

session close

A GET request will close the web browser session.

Response fields
Path Type Description

status

Number

a HTTP status code like 201

code

String

native Skylar code like 005001 see SkylarCodeConstant.java

userMessage

String

Message shown in the user interface

developerMessage

String

Additional information for debugging

Example request
$ curl 'http://skylar.livingfire.de/api/selenium/session/close' -i
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 115

{"status":200,"code":"011002","userMessage":"selenium session closed","developerMessage":"selenium session closed"}

session HTML

A GET request will get the HTML of the web browser session.

Example request
$ curl 'http://skylar.livingfire.de/api/selenium/session/html' -i
Example response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=ISO-8859-1
Content-Length: 29

<html><body>foo</body></html>