Écrire le code du backend
Vue d'ensemble
Le code de la fonction backend s'exécute dans un environnement sans serveur associé à votre compte 8th Wall.
Toutes les fonctions backend doivent exporter une méthode async de premier niveau appelée handler
, qui est le point d'entrée
dans la fonction backend.
Exemple de code de fichier d'entrée :
const handler = async (event : any) => {
// Le code backend personnalisé va ici
return {
body : JSON.stringify({
myResponse,
}),
}
}
export {
handler,
}
Méthode du client
Lorsque vous créez une fonction backend, une méthode client est automatiquement créée pour vous. Cette méthode du client
est une enveloppe autour de fetch
, ce qui signifie que vous pouvez passer les mêmes arguments à cette fonction que vous
le feriez avec un appel normal à fetch
. Voir Fetch API
pour plus de détails.
Cette méthode client permet d'envoyer des requêtes du code client du module à la fonction backend.
Fonction Paramètres de l'événement
La méthode du gestionnaire est invoquée avec un objet event
à chaque fois que la méthode du client est appelée. event
a les propriétés suivantes :
Propriété | Type | Description |
---|---|---|
chemin | chaîne de caractères | Le chemin de l'URL passé à la méthode du client ('/getUser/foo' , '/checkAnswer' , etc). |
corps | chaîne de caractères | Appeler JSON.parse(event.body) pour transformer le corps en objet. |
httpMethod | chaîne de caractères | La méthode HTTP utilisée pour appeler la fonction du backend. Un des éléments suivants : 'GET'', 'PUT'', 'POST'', 'PATCH'', `'DELETE''. |
queryStringParameters | Enregistrer<string, string> | Paires clé/valeur contenant les paramètres de la chaîne de requête de la demande. |
en-têtes | Enregistrer<string, string> | Paires clé/valeur contenant les en-têtes de la demande. |
Objet de retour
Toutes les propriétés sont facultatives.
Propriété | Type | Description |
---|---|---|
code d'état | nombre | Le code d'état de la réponse. La valeur par défaut est 200 . |
en-têtes | Enregistrer<string, string> | Les en-têtes associés à la réponse. |
corps | chaîne de caractères | L'objet JSON.stringify() associé à la réponse. |
Gestion des erreurs
Si la fonction du backend lève une exception, la fonction retournera statusCode : 500
avec un objet d'erreur dans le corps de la réponse.
Si vous possédez le module et êtes en mode développement, l'objet d'erreur contiendra name
,
message
et stack
:
{erreur : {name: string, message: string, stack: string}}
Exemple :
{
"error" : {
"name" : "TypeError",
"message" : "Cannot read properties of undefined (reading 'foo')",
"stack" : "TypeError : Cannot read properties of undefined (reading 'foo')\n at call (webpack:///src/index.ts:8:24)\n ...
}
}
Pour le mode non-développement, l'objet d'erreur ne contiendra pas de propriété name
ou stack
et le message
de
sera une erreur générique de type "Internal Server Error".
Épingler des cibles
Veuillez vous référer à https://www.8thwall.com/docs/guides/modules/pinning-targets/ pour plus de détails sur les cibles d'épinglage du module .
Lors de l'épinglage d'une Version
, Mises à jour autorisées doit être réglé sur None
Lorsque vous épinglez un Commit
, sélectionnez un commit spécifique. Latest
n'est pas supporté.