REST API version 1: Difference between revisions
Jump to navigation
Jump to search
(Added Intervention User Data) |
(Added notes and the message API endpoints.) |
||
Line 1: | Line 1: | ||
LifeGuide provides a REST API to manage parts of an intervention. This API is a work-in-progress and so will not be complete. | LifeGuide provides a REST API to manage parts of an intervention. This API is a work-in-progress and so will not be complete. The API follows the GitHub API specification where possible. | ||
__TOC__ | __TOC__ | ||
= | = REST API endpoints = | ||
== List Intervention Users == | == Intervention Users (participants) == | ||
=== List Intervention Users === | |||
Example cURL command: | Example cURL command: | ||
Line 33: | Line 35: | ||
</pre> | </pre> | ||
== Create an Intervention User == | === Create an Intervention User === | ||
Example cURL command: | Example cURL command: | ||
Line 55: | Line 57: | ||
</pre> | </pre> | ||
== Delete an Intervention User == | === Delete an Intervention User === | ||
Example cURL command: | Example cURL command: | ||
Line 75: | Line 77: | ||
</pre> | </pre> | ||
= Intervention User Data = | == Intervention User Data == | ||
== List Intervention User Data == | === List Intervention User Data === | ||
Example cURL command: | Example cURL command: | ||
Line 106: | Line 108: | ||
</pre> | </pre> | ||
== Read Intervention User Data == | === Read Intervention User Data === | ||
Example cURL command: | Example cURL command: | ||
Line 128: | Line 130: | ||
"variable1": "value1" | "variable1": "value1" | ||
} | } | ||
</pre> | |||
== Messages == | |||
=== List of Messages === | |||
Example cURL command: | |||
<pre> | |||
curl -i -X GET \ | |||
--header "Authorization: Token cOrNDlXtHTH17lFYUF5ixo8e5w7myXxM" \ | |||
"https://beta.lifeguideonline.org/api/v1/messagebox/mailto:person@example.com/message" | |||
</pre> | |||
Example response: | |||
<pre> | |||
[ | |||
{ | |||
"uri": "https://beta.lifeguideonline.org/api/v1/messagebox/mailto:person@example.com/message/14" | |||
"id": 14, | |||
"body": "Content", | |||
"groupId": "group1", | |||
"dateToSend": "2018-05-16T23:11:42Z", | |||
"address": "mailto:person@example.com", | |||
"subject": "Subject", | |||
"sentDate": "2018-05-16T23:15:00Z", | |||
}, | |||
... | |||
] | |||
</pre> | |||
=== Delete a Message === | |||
Example cURL command: | |||
<pre> | |||
curl -i -X DELETE \ | |||
--header "Authorization: Token cOrNDlXtHTH17lFYUF5ixo8e5w7myXxM" \ | |||
"https://beta.lifeguideonline.org/api/v1/messagebox/mailto:person@example.com/message/14" | |||
</pre> | |||
Example response: | |||
<pre> | |||
HTTP/1.1 204 No Content | |||
Date: Mon, 01 Jan 2018 00:00:00 GMT | |||
Server: Apache-Coyote/1.1 | |||
Content-Type: text/html;charset=utf-8 | |||
Content-Length: 0 | |||
</pre> | |||
= Notes = | |||
== Pagination == | |||
For endpoints that support pagination, the following query arguments are used to control pagination: | |||
<table> | |||
<tr> | |||
<th>Parameter</th> | |||
<th>Description</th> | |||
</tr> | |||
<tr> | |||
<td><tt>page</tt></td> | |||
<td>The page of results to return. This starts at 1.</td> | |||
</tr> | |||
<tr> | |||
<td><tt>per_page</tt></td> | |||
<td>The number of results per page. Default is 100.</td> | |||
</tr> | |||
</table> | |||
The total number of results is returned in the <tt>X-Total</tt> header of the response. | |||
== Dates == | |||
Dates are expressed without timezones. The following ISO-8601 format is used: | |||
<pre> | |||
2018-05-16T23:15:00Z | |||
</pre> | </pre> |
Revision as of 15:40, 31 May 2018
LifeGuide provides a REST API to manage parts of an intervention. This API is a work-in-progress and so will not be complete. The API follows the GitHub API specification where possible.
REST API endpoints
Intervention Users (participants)
List Intervention Users
Example cURL command:
curl -i -X GET \ --header "Authorization: Token cOrNDlXtHTH17lFYUF5ixo8e5w7myXxM" \ "https://beta.lifeguideonline.org/api/v1/intervention_user?per_page=5"
Example response:
HTTP/1.1 200 OK Date: Mon, 01 Jan 2018 00:00:00 GMT Server: Apache-Coyote/1.1 X-Total: 13 Link: <https://beta.lifeguideonline.org/api/v1/intervention_user?page=2&per_page=5>; rel="next" Content-Type: application/json;charset=utf-8 Transfer-Encoding: chunked [{ "id": 1, "enabled": true, "username": "username1", "uri": "https://beta.lifeguideonline.org/api/v1/intervention_user/1"}, { "id": 2, "enabled": true, "username": "username2", "uri": "https://beta.lifeguideonline.org/api/v1/intervention_user/2"}, { "id": 3, "enabled": true, "username": "username3", "uri": "https://beta.lifeguideonline.org/api/v1/intervention_user/3"}, { "id": 4, "enabled": true, "username": "username4", "uri": "https://beta.lifeguideonline.org/api/v1/intervention_user/4"}, { "id": 5, "enabled": true, "username": "username5", "uri": "https://beta.lifeguideonline.org/api/v1/intervention_user/5"}]
Create an Intervention User
Example cURL command:
curl -i -X POST \ --header "Content-Type: application/json" \ --header "Authorization: Token cOrNDlXtHTH17lFYUF5ixo8e5w7myXxM" \ --data '{"username"="john.smith","password"="123456"}' \ "https://beta.lifeguideonline.org/api/v1/intervention_user"
Example response:
HTTP/1.1 201 Created Date: Mon, 01 Jan 2018 00:00:00 GMT Server: Apache-Coyote/1.1 Content-Location: https://beta.lifeguideonline.org/api/v1/intervention_user/20 Content-Type: text/html;charset=utf-8 Transfer-Encoding: chunked
Delete an Intervention User
Example cURL command:
curl -i -X DELETE \ --header "Authorization: Token cOrNDlXtHTH17lFYUF5ixo8e5w7myXxM" \ "https://beta.lifeguideonline.org/api/v1/intervention_user/20"
Example response:
HTTP/1.1 204 No Content Date: Mon, 01 Jan 2018 00:00:00 GMT Server: Apache-Coyote/1.1 Content-Type: text/html;charset=utf-8 Content-Length: 0
Intervention User Data
List Intervention User Data
Example cURL command:
curl -i -X GET \ --header "Authorization: Token cOrNDlXtHTH17lFYUF5ixo8e5w7myXxM" \ "https://beta.lifeguideonline.org/api/v1/intervention_user/2/data"
Example response:
HTTP/1.1 200 OK Date: Mon, 01 Jan 2018 00:00:00 GMT Server: Apache-Coyote/1.1 Content-Type: application/json;charset=utf-8 Transfer-Encoding: chunked { "variable1": "value1", "variable2": "value2", "variable3": "value3", "variable4": 4, "variable5": 5, "variable6": 6 }
Read Intervention User Data
Example cURL command:
curl -i -X GET \ --header "Authorization: Token cOrNDlXtHTH17lFYUF5ixo8e5w7myXxM" \ "https://beta.lifeguideonline.org/api/v1/intervention_user/2/data/variable1"
Example response:
HTTP/1.1 200 OK Date: Mon, 01 Jan 2018 00:00:00 GMT Server: Apache-Coyote/1.1 Content-Type: application/json;charset=utf-8 Transfer-Encoding: chunked { "variable1": "value1" }
Messages
List of Messages
Example cURL command:
curl -i -X GET \ --header "Authorization: Token cOrNDlXtHTH17lFYUF5ixo8e5w7myXxM" \ "https://beta.lifeguideonline.org/api/v1/messagebox/mailto:person@example.com/message"
Example response:
[ { "uri": "https://beta.lifeguideonline.org/api/v1/messagebox/mailto:person@example.com/message/14" "id": 14, "body": "Content", "groupId": "group1", "dateToSend": "2018-05-16T23:11:42Z", "address": "mailto:person@example.com", "subject": "Subject", "sentDate": "2018-05-16T23:15:00Z", }, ... ]
Delete a Message
Example cURL command:
curl -i -X DELETE \ --header "Authorization: Token cOrNDlXtHTH17lFYUF5ixo8e5w7myXxM" \ "https://beta.lifeguideonline.org/api/v1/messagebox/mailto:person@example.com/message/14"
Example response:
HTTP/1.1 204 No Content Date: Mon, 01 Jan 2018 00:00:00 GMT Server: Apache-Coyote/1.1 Content-Type: text/html;charset=utf-8 Content-Length: 0
Notes
Pagination
For endpoints that support pagination, the following query arguments are used to control pagination:
Parameter | Description |
---|---|
page | The page of results to return. This starts at 1. |
per_page | The number of results per page. Default is 100. |
The total number of results is returned in the X-Total header of the response.
Dates
Dates are expressed without timezones. The following ISO-8601 format is used:
2018-05-16T23:15:00Z