我需要有关如何构建 YESOD 应用程序的一般指导。我想在设计上尽可能保持应用程序的“RESTful”。
用户搜索所有其他用户以找到要连接的用户。我展示了使用 Hamlet 的可能联系:
$forall (pid, person, mEmail, mPhone) <- displayPeopleRecs
<p>
<a href=@{CreateFundR pid}>#{personNickName person}
$maybe email <- mEmail
#{emailEmail email}
$maybe phone <- mPhone
#{phoneNumber phone}
但是,现在当用户单击链接时,他们会以 GET 请求的形式转到 /createfund/ 页面,这不是我想要的,我想使用 POST 或其他东西。
谁能解释这里的正确解决方案是什么?我是否为搜索产生的每个人制作了一个表格,并为每个可能的人提供了一个提交按钮?这似乎很愚蠢。使用 Julius 并更改链接的 onclick 处理程序以提交 POST 而不是 GET 到 /createfund 会更好吗?
这是我的配置/路由中的相关行:
/createfund/#PersonId CreateFundR POST
顺便说一句,我可以看到如何使用表单和提交按钮来完成这项工作:
$forall (pid, person, mEmail, mPhone) <- displayPeopleRecs
<p>
<form method="post" action="@{CreateFundR pid}">
<table>
<tr>
<td>
#{personNickName person}
$maybe email <- mEmail
<br>
#{emailEmail email}
$maybe phone <- mPhone
<br>
#{phoneNumber phone}
<td>
<input type="submit" value="Create Fund">
这将满足我的需求,但我真的很想让用户点击链接。这是糟糕的设计吗?还是只是口味问题?