npm package: @rairamiro/keyvaluestorefunctionappclient
Description: Integracao com API de armazenamento de Chaves/Valor do Azure
Author: ramiro.true@gmail.com
Latest version: 1.0.2

# KeyValueClient Readme 

## Visão Geral 
O `KeyValueClient` é uma biblioteca JavaScript desenvolvida para interagir com uma Azure Function para armazenamento de pares chave-valor. Este cliente simplifica o gerenciamento de chaves e valores, permitindo a busca, inserção e definição de valores padrão quando uma chave não é encontrada.
## Funcionalidades 

- Recuperar valores por chave da Azure Function.

- Inserir automaticamente um valor padrão se uma chave não for encontrada durante a busca.

- Especificar ou usar uma chave de partição padrão para organizar os pares chave-valor.

- Configuração flexível da URL base e chaves de partição específicas para diferentes ambientes.

## Instalação 

Para usar o cliente, instale-o via npm:


```bash
npm install key-value-client
```

## Uso 

### Importação e Inicialização 


```javascript
const KeyValueClient = require('key-value-client');

// Inicialize o cliente com a URL base da Azure Function
const client = new KeyValueClient();
```

### Configuração 
O cliente utiliza uma configuração flexível baseada em variáveis de ambiente ou no arquivo `config.json`: 
- **URL Base** : Pode ser definida no construtor, em uma variável de ambiente `KEYVALUE_API_URL`, ou no arquivo `config.json`.
 
- **Chave de Partição Padrão** : É configurada automaticamente com base no nome da aplicação e na variável de ambiente `ENVIRONMENT_NAME`.

### Métodos 
1. **get(rowKey, defaultValue = null, partitionKey)** Busca o valor associado à `rowKey`. Caso a chave não seja encontrada: 
- Se um valor padrão (`defaultValue`) for fornecido, ele será inserido no armazenamento.

- Caso contrário, um erro será lançado.
**Parâmetros** : 
- `rowKey` (string): A chave a ser buscada. (Obrigatório)
 
- `defaultValue` (qualquer): O valor padrão a ser usado se a chave não existir. (Opcional)
 
- `partitionKey` (string): A chave de partição. Por padrão, utiliza o valor configurado automaticamente.
**Exemplo** :

```javascript
const value = await client.get("exampleKey", "defaultValue");
console.log(value);
```
2. **set(rowKey, value, partitionKey)** 
Insere ou atualiza um par chave-valor.
**Parâmetros** : 
- `rowKey` (string): A chave a ser inserida ou atualizada. (Obrigatório)
 
- `value` (qualquer): O valor a ser associado à chave. (Obrigatório)
 
- `partitionKey` (string): A chave de partição. Por padrão, utiliza o valor configurado automaticamente.
**Exemplo** :

```javascript
await client.set("exampleKey", "exampleValue");
```

## Configuração 
Arquivo `config.json`Um arquivo `config.json` pode ser usado para configurar a URL base e outras opções:

```json
{
  "apiUrl": "https://sua-funcao-azure-url",
  "environmentName": "production"
}
```

### Variáveis de Ambiente 

As seguintes variáveis de ambiente podem ser definidas:
 
- `KEYVALUE_API_URL`: Substitui a URL base configurada no `config.json`.
 
- `ENVIRONMENT_NAME`: Define o ambiente atual (ex.: `development`, `production`).

## Licença 

Este projeto é distribuído sob a licença MIT.