Mise à jour pour passer du Poc à la version de prod
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
|||||||
260930_081832
|
261006_091623
|
||||||
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
#ifndef _VERSION_H
|
#ifndef _VERSION_H
|
||||||
#define _VERSION_H
|
#define _VERSION_H
|
||||||
|
|
||||||
#define VERSION "260930_081832"
|
#define VERSION "261006_091623"
|
||||||
|
|
||||||
#endif // _VERSION_H
|
#endif // _VERSION_H
|
||||||
|
|||||||
@@ -149,18 +149,19 @@ static QString chaine_longitude(double lon)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
// Ajoute l'en-tête CORS à une réponse - indispensable puisque le client WASM
|
// En-têtes communs à toutes les réponses de l'API.
|
||||||
// (servi par nginx sur un port distinct) et cette API (port 8080) constituent
|
// NB (synthèse §49) : le nom "withCors" est historique. L'en-tête CORS
|
||||||
// deux origines différentes du point de vue du navigateur. Sans cet en-tête,
|
// "Access-Control-Allow-Origin: *" a été RETIRÉ : le client WASM appelle
|
||||||
// les requêtes aboutissent bien côté serveur (visibles dans les logs) mais
|
// désormais l'API sous /api, sur la MÊME origine que la page (relais nginx du
|
||||||
// leur réponse est bloquée silencieusement côté client.
|
// CM5, et Traefik avec vérification de la session Live à distance) - il n'y a
|
||||||
// TODO : restreindre à l'origine réelle du client en production plutôt que
|
// plus de requête entre origines. Le conserver aurait permis à n'importe quel
|
||||||
// '*', une fois l'authentification (cf "Architecture cible") en place.
|
// site ouvert dans le navigateur d'un utilisateur de lire les réponses de
|
||||||
|
// l'API. Les appels du VPS (archives) ne passent pas par un navigateur et ne
|
||||||
|
// sont pas concernés par CORS.
|
||||||
// ----------------------------------------------------------------------------
|
// ----------------------------------------------------------------------------
|
||||||
static QHttpServerResponse withCors(QHttpServerResponse &&resp)
|
static QHttpServerResponse withCors(QHttpServerResponse &&resp)
|
||||||
{
|
{
|
||||||
QHttpHeaders headers = resp.headers();
|
QHttpHeaders headers = resp.headers();
|
||||||
headers.append(QHttpHeaders::WellKnownHeader::AccessControlAllowOrigin, "*");
|
|
||||||
// Empêche le navigateur de mettre en cache les réponses - sans ça, des
|
// Empêche le navigateur de mettre en cache les réponses - sans ça, des
|
||||||
// requêtes identiques répétées (rafraîchissement périodique) pourraient
|
// requêtes identiques répétées (rafraîchissement périodique) pourraient
|
||||||
// recevoir une réponse mise en cache plutôt que la valeur réellement à
|
// recevoir une réponse mise en cache plutôt que la valeur réellement à
|
||||||
@@ -714,20 +715,8 @@ int main(int argc, char *argv[])
|
|||||||
return withCors(QHttpServerResponse(QJsonDocument(reponse).toJson()));
|
return withCors(QHttpServerResponse(QJsonDocument(reponse).toJson()));
|
||||||
});
|
});
|
||||||
|
|
||||||
// Réponse au "preflight" CORS (requête OPTIONS automatique du navigateur
|
// NB : la route OPTIONS ("preflight" CORS, avant un PATCH venant d'une autre origine) a été retirée - plus de
|
||||||
// avant tout PATCH avec Content-Type: application/json) - sans elle, le
|
// requête entre origines depuis que l'API est servie sous /api, sur l'origine de la page (synthèse §49).
|
||||||
// navigateur abandonne silencieusement la vraie requête PATCH avant même
|
|
||||||
// de l'envoyer.
|
|
||||||
server.route("/elements/circuit/<arg>", QHttpServerRequest::Method::Options,
|
|
||||||
[](int) {
|
|
||||||
QHttpServerResponse resp(QHttpServerResponder::StatusCode::NoContent);
|
|
||||||
QHttpHeaders headers = resp.headers();
|
|
||||||
headers.append(QHttpHeaders::WellKnownHeader::AccessControlAllowOrigin, "*");
|
|
||||||
headers.append(QHttpHeaders::WellKnownHeader::AccessControlAllowMethods, "GET, PATCH, OPTIONS");
|
|
||||||
headers.append(QHttpHeaders::WellKnownHeader::AccessControlAllowHeaders, "Content-Type");
|
|
||||||
resp.setHeaders(std::move(headers));
|
|
||||||
return resp;
|
|
||||||
});
|
|
||||||
|
|
||||||
// ------------------------------------------------------------------
|
// ------------------------------------------------------------------
|
||||||
// GET /mesures?type=<capteurs|reservoirs>&id=<id>&periode=<0-3>
|
// GET /mesures?type=<capteurs|reservoirs>&id=<id>&periode=<0-3>
|
||||||
|
|||||||
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Executable
BIN
Binary file not shown.
Reference in New Issue
Block a user