2016-03-31 1 views
0

Comment gère-t-on le rappel resource_exists dans cowboy? Après tout, pour savoir si la ressource existe - je dois interroger (par exemple la base de données) pour la ressource. Mais alors pendant le rappel AcceptResource (par exemple to_html) je dois interroger à nouveau la ressource. Est-il possible d'empêcher cette double requête?Cowboy reste resource_exists callback

Y at-il un moyen de préserver cette ressource pour le rappel AcceptResource, de sorte que je ne dois pas retirer la base de données de formulaire à nouveau?

En lisant les documents cowboy, il y a flowchart de la façon dont une demande de repos est gérée. Dans celui-ci, le rappel resource_exists est appelé en premier.

Répondre

3

Dans resource_exists, vous pouvez ajouter le résultat de la requête de base de données à la variable State renvoyée par.

L'état est transmis en tant qu'entrée au rappel AcceptResource où vous pouvez utiliser la valeur mise en cache.

+0

Droite. Logique! Quelle est la structure de la variable d'état? Quelle est sa valeur initiale? – drozzy

+1

Oh, j'ai compris, ça appelle 'rest_init/2' qui doit retourner' {ok, Req, State} '. Source: http://ninenines.eu/docs/en/cowboy/1.0/guide/rest_handlers/ – drozzy