edge/doc/apps/server-api/fetch.md

1.2 KiB

Module fetch

Ce module permet l'accès à des ressources distantes (sur Internet) depuis votre application.

Fonctions de rappel

Pour permettre aux utilisateurs d'accéder à des ressources distantes, vous devez déclarer la fonction onClientFetch(ctx: Context, url: string, remoteAddr: string) dans le fichier server/main.js de votre application.

onClientFetch(ctx: Context, url: string, remoteAddr: string)

Usage

Côté client

// Création d'une URL "locale" permettant d'accéder à la ressource distante
var url = Edge.Client.externalUrl("http://example.com")

// Vous pouvez utiliser l'URL comme attribut `src` d'une balise <img> par exemple
// ou effectuer une requête fetch() avec celle ci.
fetch(url).then(res => res.text()).then(content => console.log(content));

Côté serveur

function onClientFetch(ctx, url, remoteAddr) {
    // Autoriser la récupération de l'URL demandée ou non
    // Dans cet exemple, seule l'URL externe 'http://example.com' est autorisée
    // Les autres URLs recevront une erreur HTTP 403 - Forbidden
    var authorized = url === "http://example.com"

    return { allow: authorized };
}