Как я могу обработать отправку POST в Webmachine?

Может ли какая-нибудь добрая душа показать мне, как написать или указать мне ПРОСТОЙ запрос веб-машины для обработки запроса POST; например представлено чем-то вроде:

<form name="input" action="yada yada" method="post">
   Username: <input type="text" name="fname" />
   <input type="submit" value="Submit" />
</form>   

Большое спасибо,

ЛРП


person Lloyd R. Prentice    schedule 21.11.2011    source источник


Ответы (1)


Учитывая ваш ресурс веб-машины, вы гарантируете, что атом 'POST' содержится в списке разрешенные методы:

allowed_methods(ReqData, Context) ->
    {['HEAD', 'GET', 'PUT', 'DELETE', 'POST'], ReqData, Context}.

Затем вы можете обработать свой запрос PUT в следующую функцию:

process_post(ReqData, Context) ->
...
{true, Context}.

Учебное пособие по этому вопросу доступно по адресу:

http://www.planeterlang.org/en/planet/article/The_BeeBole_ErlangWeb_Tutorial_Webmachine-Style/

Вот еще один пример того, как управлять простым запросом POST:

https://bitbucket.org/bryan/wmexamples/src/tip/src/formjson_resource.erl

person Roberto Aloi    schedule 22.11.2011
comment
Спасибо! Как раз то, что мне было нужно. - person Lloyd R. Prentice; 23.11.2011
comment
Ах, я говорил слишком рано. Здесь есть вещи, которых я до сих пор не понимаю. Ссылки json в учебниках только смущают меня. Предположим, чтобы сделать это по одному шагу за раз, я просто хочу вернуть значения, представленные в форме примера, показанной в моем вопросе. Как мне вывести значения из тела запроса, отобразив их обратно, скажем, через io:format/2? - person Lloyd R. Prentice; 23.11.2011
comment
Хм. В примерах показано, как обрабатывать строку запроса и создавать ответы, но не показано, как получить доступ к полезной нагрузке http-запроса POST. - person Pum Walters; 10.10.2014