---
description: Guide d'installation du projet InTechNet.API
---

# API

## Prérequis

`InTechNet.API` est l'API sur laquelle est basée le projet InTechNet. Avant de procéder à l'installation, veillez à disposer de:

* [.NET Core 3.1](https://dotnet.microsoft.com/download)
* C# 8.0
* Un IDE tel que [VS Code](https://code.visualstudio.com/) ou [Visual Studio 2019](https://visualstudio.microsoft.com/vs/)
* Un serveur [PostgreSQL](https://www.postgresql.org/)

## Cloner le projet

Commencer par créer une copie locale du répertoire:

```bash
~$ git clone https://github.com/pBouillon/InTechNet.API
```

{% hint style="info" %}
&#x20;Si vous souhaitez ajouter vos fonctionnalités pour pouvoir ensuite les proposer, penser à faire un fork du projet avant et à cloner votre fork !
{% endhint %}

## Initialiser le projet

### Configurer l'accès à la base de données

Modifiez les informations de connexion à votre base de données dans le fichier `appsettings.json`, sous la partie `ConnectionStrings`

{% code title="InTechNet.Api\InTechNet.Api\appsettings.json" %}
```javascript
"ConnectionStrings": {
  "InTechNetDatabase": "Host=localhost;Database=InTechNet;Username=postgres;Password=root"
}
```
{% endcode %}

{% hint style="info" %}
Pour modifier les informations relatives à votre environnement de développement, spécifiez les dans`InTechNet.Api\InTechNet.Api\appsettings.Development.json`
{% endhint %}

### Installer les dépendances

Pour installer les packages NuGet nécessaires au projet, exécutez les commandes suivantes dans un terminal

```bash
InTechNet.Api$ cd InTechNet.Api
InTechNet.Api/InTechNet.Api$ dotnet restore
```

### Compiler le projet

Pour compiler le projet, exécutez la commande suivante, toujours dans le dossier`InTechNet.Api`

```bash
InTechNet.Api/InTechNet.Api$ dotnet build
```

{% hint style="info" %}
Par défaut, la cible est `Debug`, pour compiler en `Release`, ajouter l'option `--configuration Release`
{% endhint %}

## Lancer l'API

Dans l'exemple suivant, voici comment lancer l'API à partir d'une compilation en mode `Release`

```bash
InTechNet.Api/InTechNet.Api$ dotnet publish --configuration Release
InTechNet.Api/InTechNet.Api$ cd InTechNet.Api/bin/Release/netcoreapp3.1
InTechNet.Api/InTechNet.Api/InTechNet.Api/bin/Release/netcoreapp3.1$ dotnet InTechNet.Api.dll
```

L'API est ensuite lancée localement et écoute par défaut sur le port 5001. Vous pouvez y accéder via [http://localhost:5001](https://localhost:5001). Vous pouvez également accéder au Swagger et à la documentation de l'API sur [https://localhost:5001/swagger](https://localhost:5001/swagger/index.html).

Au lancement, le programme initialisera automatiquement la base de données avec les tables et relations appropriées.

![Interface Swagger de l'API](https://4049980238-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-M5RCPemgW9U4TJibnzQ%2F-M5RCanShaefIHx9WSOf%2F-M5RaGh7pTvCtlcrfUYq%2FAnnotation%202020-04-21%20135636.jpg?alt=media\&token=83ba5a58-e957-4ef0-b917-86f3eb074e99)
