Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/resource-watch/download-dataset


https://github.com/resource-watch/download-dataset

Last synced: 1 day ago
JSON representation

Awesome Lists containing this project

README

        

# Download Dataset API

This repository is the microservice that it implement the download query funcionality and exposed the /download endpoint in the api-gateway

## First time user
Perform the following steps:
* [Install docker](https://docs.docker.com/engine/installation/)
* Clone this repository: ```git clone [email protected]:resource-watch/download-dataset.git```
* Enter in the directory (cd download-dataset-api)
* After, you open a terminal (if you have mac or windows, open a terminal with the 'Docker Quickstart Terminal') and execute the next command:

```bash
docker-compose -f docker-compose-develop.yml build

```

## Run in develop mode (Watch mode)
Remember: In windows and Mac, open the terminal with 'Docker Quickstart Terminal'

```bash
docker-compose -f docker-compose-develop.yml build
//this command up the machine. If you want up in background mode, you add the -d option
```

## Execute test
Remember: In windows and Mac, open the terminal with 'Docker Quickstart Terminal'
```
docker-compose -f docker-compose-test.yml run test
```

## Install in heroku

Is necessary define the next environment variables:
* API_GATEWAY_URI => Url the register of the API Gateway. Remember: If the authentication is active in API Gateway, add the username and password in the url
* NODE_ENV => Environment (prod, staging, dev)

Is necessary the pem file of Google Earth Engine authentication in the root of the project

# Config

## register.json
This file contain the configuration about the endpoints that public the microservice. This json will send to the apigateway. it can contain variables:
* #(service.id) => Id of the service setted in the config file by environment
* #(service.name) => Name of the service setted in the config file by environment
* #(service.uri) => Base uri of the service setted in the config file by environment

Example:
````
{
"id": "#(service.id)",
"name": "#(service.name)",
"urls": [{
"url": "/story",
"method": "POST",
"endpoints": [{
"method": "POST",
"baseUrl": "#(service.uri)",
"path": "/api/v1/story",
"data": ["loggedUser"]
}]
}, {
"url": "/story/:id",
"method": "GET",
"endpoints": [{
"method": "GET",
"baseUrl": "#(service.uri)",
"path": "/api/v1/story/:id"
}]
}, {
"url": "/user",
"method": "GET",
"endpoints": [{
"method": "GET",
"baseUrl": "#(service.uri)",
"path": "/api/v1/story"
}]
}]
}

```