# httpsecureapi_v2

> Httpsecureapi est une class TypeScript/JavaScript pour gérer les requêtes réseau dans des applications web comme mobile. Elle offre une flexibilité maximale avec la possibilité de spécifier une URL de base, des en-têtes personnalisés, et une clé secrète p

Latest version **1.0.18** (published 2023-11-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install httpsecureapi_v2
pnpm add httpsecureapi_v2
yarn add httpsecureapi_v2
bun add httpsecureapi_v2
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.18 |
| Published | 2023-11-28 |
| First published | 2023-11-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 2 |
| Unpacked size | 9.6 KB |
| Known vulnerabilities | 0 (+2 in 1 direct dependencies) |
| Install scripts | no |
| GitHub stars | 0 |
| Author | Votre Nom |
| Maintainers | jeff2106 |
| Keywords | fetch, http, secure |

## Links

- npm: https://www.npmjs.com/package/httpsecureapi_v2
- Repository: https://github.com/jeff2106/httpsecureapi
- Homepage: https://github.com/jeff2106/httpsecureapi.git#readme
- Issues: https://github.com/jeff2106/httpsecureapi/issues
- npm.io page: https://npm.io/package/httpsecureapi_v2

## Dependencies (2)

- [crypto-js](https://npm.io/package/crypto-js.md) ^3.1.9-1
- [node-fetch](https://npm.io/package/node-fetch.md) ^3.3.2

## Alternatives

- [launchdarkly-js-client-sdk](https://npm.io/package/launchdarkly-js-client-sdk.md) — 2.5M weekly downloads
- [@elastic/elasticsearch](https://npm.io/package/@elastic/elasticsearch.md) — 2.1M weekly downloads
- [@c8y/client](https://npm.io/package/@c8y/client.md) — 15.3K weekly downloads
- [@signaldb/maverickjs](https://npm.io/package/@signaldb/maverickjs.md) — 1.7K weekly downloads
- [@bbc/http-transport-cache](https://npm.io/package/@bbc/http-transport-cache.md) — 1.2K weekly downloads

## Recent versions

- 1.0.18 (latest) — 2023-11-28
- 1.0.17 — 2023-11-28
- 1.0.14 — 2023-11-17
- 1.0.13 — 2023-11-17
- 1.0.12 — 2023-11-17
- 1.0.11 — 2023-11-17
- 1.0.10 — 2023-11-17
- 1.0.9 — 2023-11-17
- 1.0.8 — 2023-11-17
- 1.0.7 — 2023-11-17
- 1.0.6 — 2023-11-17
- 1.0.5 — 2023-11-17
- 1.0.4 — 2023-11-17
- 1.0.2 — 2023-11-17
- 1.0.1 — 2023-11-17
- … 1 more at https://npm.io/package/httpsecureapi_v2/versions

## README

# `Httpsecureapi`

Un module Node.js pour effectuer des requêtes HTTP sécurisées avec chiffrement des données.

## Installation

```bash
npm install httpsecureapi
```
## Utilisation
## Importation du module
```bash
const Httpsecureapi = require('httpsecureapi');
```
## Création d'une instance
```bash
const apiUrl = 'https://api.example.com';
const encryptionKey = 'your-secret-key';
const headers = {}
const http = new Httpsecureapi(apiUrl, headers, encryptionKey);
```
## Effectuer une requête GET
```bash
const url = '/users';
http.get(url)
  .then(response => console.log(response))
  .catch(error => console.error(error));
```
## Effectuer une requête POST
```bash
const url = '/users';
const data = { username: 'john_doe', password: 'secure_password' };
http.post(url, { body: data })
  .then(response => console.log(response))
  .catch(error => console.error(error));

```
## Effectuer une requête PUT
```bash
const url = '/users/123';
const data = { username: 'updated_user' };
http.put(url, { body: data })
  .then(response => console.log(response))
  .catch(error => console.error(error));

```
## Effectuer une requête DELETE
```bash
const url = '/users/123';
http.delete(url)
  .then(response => console.log(response))
  .catch(error => console.error(error));
```

# Intercepteur
- <b>Intercepteur de requête (request)</b>
- <b> Intercepteur de réponse (response)</b>
- <b>Intercepteur d'erreur (error)</b>


```bash
const http = new Httpsecureapi(apiUrl, customHeaders, encryptionKey);

http.addInterceptor({
    request: (config) => {
        config.headers['Authorization'] = 'Bearer your-access-token';
        return config;
    },
});

http.addInterceptor({
    response: (response) => {
        // Convertir le format de la date
        if (response.data.date) {
            response.data.date = new Date(response.data.date);
        }
        return response;
    },
});

http.addInterceptor({
    error: (error) => {
        // Gérer les erreurs spécifiques
        if (error.status === 401) {
            console.error('Erreur d\'authentification. Veuillez vous reconnecter.');
        }
        throw error; // Renvoyer l'erreur après traitement
    },
});
```


## Options de configuration

- `apiUrl`: URL de base de l'API.
- `headers`: En-têtes personnalisés pour chaque requête.
- `encryptionKey`: Clé de chiffrement pour sécuriser les données.

## Fonctions

- `get(url, options)`: Effectue une requête GET.
- `post(url, options)`: Effectue une requête POST.
- `put(url, options)`: Effectue une requête PUT.
- `addInterceptor`: Pour l'intercepteur.

## Utilisation du chiffrement des données

Le module Httpsecureapi utilise le chiffrement pour sécuriser les données envoyées dans les requêtes. Voici comment cela fonctionne :

- <b>Chiffrement des données sortantes (Requêtes POST) :</b> Lorsque vous effectuez une requête POST avec des données dans le corps (options.body), ces données sont automatiquement chiffrées avant d'être envoyées au serveur si l'en-tête encryptionKey est fourni. Dans le cas contraire, les données sont envoyées telles quelles pour une utilisation normale.
- <b>Déchiffrement des données entrantes (Réponses du serveur) :</b> Lorsqu'une réponse est reçue du serveur, le module vérifie si les données sont chiffrées. Si elles le sont, elles sont automatiquement déchiffrées avant d'être retournées.
Remarque : Le serveur doit être configuré pour envoyer les données dans le format chiffré pris en charge par Httpsecureapi. Assurez-vous que le serveur comprend le mode de chiffrement utilisé par le module.

## Configuration des en-têtes personnalisés

Vous pouvez également configurer des en-têtes personnalisés pour chaque requête en passant un objet headers lors de la création de l'instance Httpsecureapi. Par exemple :
```bash
const apiUrl = 'https://api.example.com';
const encryptionKey = 'your-secret-key';
const customHeaders = {
    'Authorization': 'Bearer your-access-token',
    'Content-Type': 'application/json'
};

const http = new Httpsecureapi(apiUrl, customHeaders, encryptionKey);
```
## Mode Encrypted 🚨
Pour utiliser le mode encrypté, assurez-vous que le serveur auquel vous faites des requêtes a préalablement renvoyé les données sous forme encryptée, suivant le même format que celui utilisé par ce module. Le chiffrement actuellement utilisé est l'algorithme AES-256-CBC avec une clé de chiffrement fournie lors de la création de l'instance Httpsecureapi. Veillez à utiliser la même clé de chiffrement des deux côtés pour garantir la compatibilité du chiffrement et du déchiffrement des données.

## Pour plus d'informations je vous laisse mon gmail 
```jeanphilippesara225@gmail.com``` <br/> <br/>
Merci d'utiliser mon module 😉
## Licence

Ce module est distribué sous la licence MIT. Voir le fichier `LICENSE` pour plus de détails.

---
_Source: https://npm.io/package/httpsecureapi_v2 · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
