txw*_*ger 3 php rest model-view-controller crud agavi
agavi框架使用PUT请求创建和POST来更新信息.通常在REST中,这反过来使用(通常是指在PUT替换整个数据记录时POST添加信息).
如果我理解正确,重要的问题是PUT必须是幂等的,而POST没有这个要求.因此,我觉得如何创建新记录可以是幂等的(即多个请求不会导致记录的多次创建),特别是当ORM通常使用id作为主键并且新记录的id不知道时到客户端(因为它在数据库中自动处理),因此不能成为请求的一部分.鉴于PUT请求,agavi如何保持幂等性的要求.
谢谢.
PUT既可用于创建,也可用于更新完整记录.POST通常用于部分更新和相关操作,以及在服务器上创建新类型的记录而不指定资源的URL(例如POST到/ articles/23/comments返回201状态和位置:/ articles/23/comments/283136标题).因此,在您的情况下(使用序列/自动增量ID),您将使用该方法.
但是,HTML(以及Web表单)是不同的.它只知道GET和POST,而不是DELETE和PUT.对于删除和更新操作,它会重载POST方法.
这就是为什么Agavi的,默认情况下,映射POST"写",并获得"读" - 这是最常见的情况,而"读"和"写"被选中,是因为它们是相对中性的,并在某种程度上代表了安全性GET与POST的各个方面(安全性如"GET可以被称为无副作用"和blah).
您可以在factories.xml中更改AgaviWebRequest实现的动词映射; 如果您需要帮助(或在此处询问),请参阅Agavi用户邮件列表或IRC频道.IRC频道上的很多人对URL方案设计也很有经验,以防你需要更多的帮助来使你的API漂亮.
归档时间: |
|
查看次数: |
733 次 |
最近记录: |