Ich versuche zu lernen, wie man Erlang Webmachine-Ressourcen schreibt. Eine Ressource löst einen Fehler aus, aber ich kann ihn nicht aufspüren. Die Fehlermeldung im Absturzbericht liefert nicht genügend Informationen.
Gibt es eine Möglichkeit, diese Funktionen in der Erlang-Shell zu testen?
Die meisten Funktionen der Ressource erfordern Anforderungs- und Kontextparameter. Ich weiß aber nicht, wie ich diese Parameter im Browser simulieren kann.
Beispielcode unten.
Danke,
LRP
Beispiel-Code:
Ich denke dabei insbesondere an Funktionen wie:
content_types_provided(RD, Ctx) ->
Path = wrq:disp_path(RD),
{[{webmachine_util:guess_mime(Path), generate_body}],
RD, Ctx}.
Aber mein aktueller Fehler liegt in der init-Funktion.
Das funktioniert...
Versendungsregel:
{["blip"], zzz_resource, []}.
Einleitung:
init([]) -> {ok, undefined}.
to_html(ReqData, State) ->
% {"<html><bodoy>Hello, new world</body></html>", ReqData, State}.
{test:test(), ReqData, State}.
Dies führt jedoch zu einem Fehler:
Versenden:
{["static"], static_resource,[]}.
Einleitung:
init(_) ->
DocRoot =
case init:get_argument(doc_root) of
{ok, [[DR]]} -> DR;
error -> "doc_root path error"
end,
{ok, #ctx{docroot=DocRoot}}.
=ERROR REPORT==== 4-Aug-2011::10:54:56 ===
webmachine error: path="/static"
{error,function_clause,
[{filename,join,[[]]},
{static_resource,resource_exists,2},