我有一种方案,其中用户在表单中输入他的所有详细信息,然后单击Asp.Net Web api中的Submit(发布请求)。如果用户单击“发布”按钮两次,该怎么办。如何处理请求。
任何人请回答这个问题。
答案 0 :(得分:2)
如果使用视图模型,这是您不应该担心的事情,但是由于这是api,因此事情应该有点复杂。
您可以争辩@sm在用户提交请求时禁用“提交”按钮,但是如果您运送的是纯API,则您对消费者不承担任何责任。那就不可能了
我们在办公室里要做的事。
令牌化握手。 每个POST,PUT,PATCH,DELETE请求(几乎所有非GET请求)应在访问API端点之前从服务器获取令牌。在此部分中,您可以检查用户请求使用令牌的次数。这很复杂,但是您可以跟踪用户的活动。您还可以设置请求阈值,并在超出用户可以发送而又不破坏您的api的合理请求的情况下禁止用户。
使用秘密的特殊标头属性。 如果您要运送供私人商业使用的api,请使用一个秘密标头密钥,并将证书授予使用该api的受信任方。
GET和POST的不同模型。对于上帝的USE DTO,而不是直接在您的操作方法中使用POCO类
我不太熟悉,但是我们的DEVOps可以确保我们在运送公共api。在IIS产品环境中应该有一个DDOS筛选配置。
答案 1 :(得分:1)
我完全不同意@keysl,如果您要创建一个API,则可能应该考虑使其成为RESTFul,而rest服务应该是幂等的,take a read of this article也许是>
“在REST API的上下文中,发出多个相同请求的效果与发出单个请求的效果相同”