boussole-pluss/README.md

2.9 KiB

Bousolle PLUSS

Le projet backend contient la partie backend de la Bousolle PLUSS. Le projet frontend, le fontend communiquant avec le backend.

Installation

En utilisant docker-compose: docker-compose build en modifiant au préalable l'argument BACKEND_BASE_URL du fichier docker-compose.yml pour spécifier l'URL sur laquelle pointera le backend. docker-compose up pour lancer le frontend et backend.

Exemple de configuration Nginx compatible avec le docker-compose de ce projet (URL_EXTERNE est à remplacer par l'URL publique) :

upstream springboot {
  server 127.0.0.1:8191;
}

server {
  server_name URL_EXTERNE;

  location / {
    proxy_pass http://127.0.0.1:8190;
  }

  location /api {
    proxy_set_header    Host               $host;
    proxy_set_header    X-Real-IP          $remote_addr;
    proxy_set_header    X-Forwarded-For    $proxy_add_x_forwarded_for;
    proxy_set_header    X-Forwarded-Host   $host;
    proxy_set_header    X-Forwarded-Server $host;
    proxy_set_header    X-Forwarded-Port   $server_port;
    proxy_set_header    X-Forwarded-Proto  $scheme;
    proxy_set_header    X-NginX-Proxy      true;

    rewrite ^/api/(.*)$ /$1 break;
    proxy_pass http://springboot;
  }

  error_log /var/log/nginx/pluss_error.log;

  listen [::]:80;
  listen 80;
}

Ceci est un exemple à ne pas utiliser sur un environnement de production.

Administration

Par la suite, __URL__ est l'URL du backend, __USER__ et __PASSWORD__ le nom de compte et mot de passe à créer / utiliser.

Créer un nouveau compte

curl --location --request POST '__URL__/api/auth/signup' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username": "__USER__",
    "password": "__PASSWORD__"
}'

Se connecter

curl --location --request POST '__URL__/api/auth/signin' \
--header 'Content-Type: application/json' \
--data-raw '{
    "username": "__USER__",
    "password": "__PASSWORD__"
}'

Cet appel renverra un token à réutiliser pour l'ensemble des requêtes. Par exemple :

{
"token": "eyJhbGciOiJIUzUxMiJ9.eyJzdWIiOiJkZW1vIiwiaWF0IjoxNjY1NjY5NjUyLCJleHAiOjE2NjU2NzMyNTJ9.i426thZKL4-JvOt9ZeG2D1O6O-xlSiPoCMiKysHYzCkHVNrnxKetq8xKRNCTnbpLV-wagpOw2g-om34k2jtHIw",
"refreshToken": "de73adcb-a5a8-4675-8bb3-5536651be0f9",
"id": 11,
"username": "demo"
}

Afficher les balises (axe)

curl --location --request GET '__URL__/api/axes' \
--header 'Authorization: Bearer TOKEN'

Le TOKEN est à remplacer par celui reçu.

Ajouter une question à un axe

curl --location --request POST '__URL__/api/questions' \
--header  'Authorization: Bearer TOKEN' \
--header 'Content-Type: application/json' \
--data-raw '
    {
        "axe": "URL_BALISE_1",
        "label": "Question 1",
        "description": "Description .."
    }
'

Il faut spécifier URL_BALISE_1 comme étant l'URL de la balise 1 récupérer dans la requête précédente. Par exemple : __URL__/axes/1