- Introduction
- Available Endpoints
- Request and Response Schemas
- Examples
- Querying services
- Optional port forwarding
This API provides services for managing and querying EO datasets along with various management endpoints. The responses are standardized using a common response structure for consistency and ease of integration.
Route: api/dataset
Method: GET
Route: {id:int}/breakdown
Parameters:
id (int): The identifier of the dataset
Response:
GenericResponse<DatasetBreakdown>
Method: GET
Route: query/{request}
Parameters:
request (string): The query request
sourcesList (string, optional): Comma-delimited list of sources
Response:
GenericResponse<List<int>>
Method: GET
Route: {commaDelimitedValues}/information
Parameters:
commaDelimitedValues (string): Comma-delimited list of dataset IDs
Response:
GenericResponse<List<DatasetInformation>>
Method: GET
Route: information
Parameters:
query (QueryList<int>): List of dataset IDs
Response:
GenericResponse<List<DatasetInformation>>
Method: POST
Route: generateScript
Parameters:
request (Request): The request options
Response:
GenericResponse<string>
Method: POST
Route: breakdown
Parameters:
request (Request): The request options
Response:
GenericResponse<DatasetBreakdown>
Method: GET
Route: sources
Parameters: none
Response:
GenericResponse<List<string>>
Route: base URL
Method: GET
Route: /
Response:
ImportantMessage: A message indicating the service health
Route: api/service
Method: GET
Route: initServiceFromS3
Parameters:
restart (bool, optional): Flag to indicate if the service should restart. Default is false.
Response:
GenericResponse<string>
Method: GET
Route: initServiceFromLocalFolder
Parameters:
restart (bool, optional): Flag to indicate if the service should restart. Default is false.
Response:
GenericResponse<string>
Method: GET
Route: status
Response:
GenericResponse<string>
Method: GET
Route: setMode
Parameters:
mode (int): Search mode (1: Low load, 2: Mid load, 3: High load)
Response:
IActionResult
Method: GET
Route: version
Response:
Definitions.Version?
Generic response structure, payload type T
{
"success": "boolean",
"payload": "T",
"error": {
"code": "string",
"message": "string"
},
"version": {
"dataTimestamp": "DateTime",
"knowledgeGraphTimestamp": "DateTime",
"systemVersion": "string"
}
}
{
"metadata": {
"string": [
"AttributeDefinition"
]
},
"products": [
"Product"
]
}
{
"id": "string",
"metadata": {
"string": [
"AttributeDefinition"
]
},
"features": {
"string": [
"string"
]
},
"baseHash": "string",
"completeHash": "string"
}
{
"code": "string",
"message": "string"
}
{
"message": "string"
}
{
"dataTimestamp": "DateTime?",
"knowledgeGraphTimestamp": "DateTime?",
"systemVersion": "string"
}
{
"attributeName": "string",
"children": {
"string": [
"AttributeDefinition"
]
},
"dataType": "string?",
"values": [
"string"
]
}
{
"id": "int",
"persistentID": "string",
"baseHash": "string",
"completeHash": "string",
"metadata": {
"string": [
"AttributeDefinition"
]
}
}
{
"id": "int",
"persistentID": "string",
"baseHash": "string",
"completeHash": "string",
"metadata": {
"string": [
"AttributeDefinition"
]
}
}
{
"DatasetId": "int?",
"DatasetPersistentId": "string?",
"FunctionalOptions": {
"string": [
"string"
]
},
"RequestOptions": {
"string": [
"string"
]
}
}
Generic list of type T
{
"Items": [
"T"
]
}
Request Body:
{
"datasetId": 123,
"datasetPersistentId": "abc123",
"functionalOptions": {
"option1": ["value1", "value2"]
},
"requestOptions": {
"option2": ["value3"]
}
}
Response:
{
"success": true,
"payload": "Generated script content",
"error": null,
"version": {
"dataTimestamp": "2023-10-10T00:00:00",
"knowledgeGraphTimestamp": "2023-10-10T00:00:00",
"systemVersion": "1.0.0"
}
}
DownloadOption: "Zip file (.zip)", "Compressed tar file(.tar.gz)", "GRIB2", "NetCDF (experimental)"
Dataset-dependent options
Geometry, Date, ProductPrefix
Compress: True, False
ProductID
All features (non-empty) discovered via the dataset breakdown "ProductID": selected product to be downloaded from (value found in dataset breakdown: Products array -> selected product -> metadata -> id "Geometry": same format as ADAM
"Date": same format as ADAM "ProductID": selected product to be downloaded from (value found in dataset breakdown: Products array -> selected product -> metadata -> id AND All features discovered via the dataset breakdown under the selected product
All features discovered via the dataset breakdown
All features discovered via the dataset breakdown
"Geometry": same format as ADAM "Date": same format as ADAM
The constructed python script is currently an initial placeholder and will have to be refined.
All features discovered via the dataset breakdown
All features discovered via the dataset breakdown (the email entry is empty, meaning the user can optioally type in their email)
Also, the following needs to be provided as well:
"Geometry": same format as ADAM "Date": same format as ADAM
No customization needed. You always get the same script. Provide empty request parameters
All features discovered via the dataset breakdown
"ProductID": available options found via the breakdown "Date": 2 dates for proper range
The constructed python script is currently an initial placeholder and will have to be refined.
"Variable": available options found via the breakdown "Date": 2 dates for proper range
The constructed python script is currently an initial placeholder and will have to be refined.
If you are running the service locally and want to access it from a remote machine, you can use kubectl port forwarding to forward the service port to your local machine. The following command can be used to forward the service port to your local machine:
kubectl port-forward -n kg-web-proto svc/kg-web-proto-service 8081:8080
Optionally, you can specify the kubeconfig file path if you are not using the default kubeconfig file:
kubectl port-forward -n kg-web-proto svc/kg-web-proto-service 8081:8080 --kubeconfig path\to\your\kubeconfig