Entity¶
/api/repositories/{repository}/entities/{entity}
| Parameter | Type | Purpose |
|---|---|---|
| repository | string | The name of the Repository to access |
| entity | int | The ID of the entity to view |
Show¶
-
GET/api/repositories/(string: repository)/entities/(int: entityID)¶ Get the metadata for an entity.
GET /api/repositories/jupiter/entities/1 HTTP/1.1
Accept: application/json
| Response Code | Reason |
|---|---|
| 200 | No error |
| 500 | Server error |
The response is a JSON string containing two values:
Columns¶
The columns value is a JSON array describing the columns that make up the data rows.
Each element in the array is a JSON list containing the following keys:
| Key | Description |
|---|---|
| columnisedName | The column name for computer consumption |
| humanisedName | The column name for human consumption |
| description | Description of the column |
{
"columns": [
{
"columnisedName": "_col0",
"humanisedName": "Metadata",
"description": "The name of the metadata statistic"
},
{
"columnisedName": "_col1",
"humanisedName": "Value",
"description": "The value of the metadata statistic"
},
{
"columnisedName": "_col2",
"humanisedName": "Description",
"description": "A description of the metadata statistic"
}
]
}
Rows¶
The rows value is a JSON array. Each element consists of one or two values:
| Key | Desciption |
|---|---|
| dataRow | An array containing the data for the row; will have as many elements as there are Columns |
| metadata | A JSON list containing metadata for the data row (see below); appears only in rows having appropriate metadata available |
The row metadata contains the following value:
| Key | Description |
|---|---|
| url | The URL to get the data item |
{
"rows": [
...
{
"dataRow": [
"Rows",
"9999",
"The number of loaded rows"
],
"metadata": {
"url": "/api/repositories/test/entities/2/rows"
}
},
{
"dataRow": [
"Values",
"39642",
"The number of distinct values loaded (across all attributes)"
]
},
...
]
}
Load¶
-
POST/api/repositories/(string: repository)/entities/(int: entityID)¶ Load data to an entity.
POST /api/repositories/jupiter/entities/1 HTTP/1.1
Content-Type: application/json
{
"command": "load",
"data": {
"jobName": "my delimited load",
"scheduleNow": "0",
"scheduleTime": "2016-05-05 17:30:45"
}
}
| Response Code | Reason |
|---|---|
| 204 | No error |
| 400 | Invalid data passed with request |
| 500 | Server error |
The request packet must contain the command and data elements. The options element is not required.
The following table shows which fields are required in data element:
| Field | Required |
|---|---|
| jobName | Yes |
| scheduleNow | Yes |
| scheduleTime | No (if scheduleNow is 1) / Yes (if scheduleNow is 0) |
scheduleNow field can be formatted as follows:
| Value | Description |
|---|---|
| 1 | Schedule the job immediately |
| 0 | Schedule the job at a given date and time (requires scheduleTime field) |
scheduleTime field can be formatted as follows:
| Value | Example |
|---|---|
| YYYY-Month-DD HH:MM:SS | 2016-JANUARY-01 10:30:45 |
| YYYY/Month/DD HH:MM:SS | 2016/JANUARY/01 10:30:45 |
| YYYY-Mon-DD HH:MM:SS | 2016-JAN-01 10:30:45 |
| YYYY/Mon/DD HH:MM:SS | 2016/JAN/01 10:30:45 |
| YYYY-MM-DD HH:MM:SS | 2016-01-01 10:30:45 |
| YYYY/MM/DD HH:MM:SS | 2016/01/01 10:30:45 |
If the command is successful, the response will return the url link to a scheduled job as follows:
{
"url": "/api/repositories/jupiter/scheduler/1"
}
Edit¶
-
POST/api/repositories/(string: repository)/entities/(int: entityID)¶ Edit an entity.
POST /api/repositories/jupiter/entities/1 HTTP/1.1
Content-Type: application/json
{
"command": "edit",
"data": {
"name": "entity name",
"description": "entity description"
}
}
The request packet must contain the command and data elements.
| Key | Purpose |
|---|---|
| name | The new name of the entity |
| description | The new description for the entity |
The name field is required. The description field is optional.
| Response Code | Reason |
|---|---|
| 200 | No error |
| 400 | Invalid data passed with request |
| 500 | Server error |
If the command is successful, the response will return the url link to an updated entity as follows:
{
"url": "/api/repositories/jupiter/entities/1"
}
Delete¶
-
POST/api/repositories/(string: repository)/entities¶ Delete one or more entities.
DELETE /api/repositories/jupiter/entities HTTP/1.1
Content-Type: application/json
{
"command": "delete",
"data": {
"entityId": ["198", "199"]
}
}
The request packet must contain the command and data elements.
| Key | Purpose |
|---|---|
| entityId | A list of entity IDs. |
To delete only one entity, provide only 1 entity ID:
{
"command": "delete",
"data": {
"entityId": ["200"]
}
}
| Response Code | Reason |
|---|---|
| 200 | No error |
| 400 | Invalid data passed with request |
| 500 | Server error |
If the command is successful, the response will return the url link to the scheduled job:
{
"url": "/api/repositories/jupiter/scheduler/136"
}