以Restful方式验证资源的方法

3
假设我在我的API中有一个特定电商应用程序/cart的资源,支持一些CRUD操作:GET, POST。
我想要一个验证购物车是否正确(库存可用性等)的服务,所以我需要所有购物车信息,但我不想存储部分购物车状态,这就是为什么PUT不支持此资源的原因。
问题是使用哪种方法和路径可以以Restful方式实现此类服务?
1个回答

2

我认为如果你想构建一个RESTful Web服务,就不应该在其中绑定太多业务逻辑。

RESTful服务应该被看作是系统的基础设施。它提供了一致的API以允许其他人访问资源。

你可以在RESTful资源之上构建业务层,在这一层中,你可以进行复杂的业务逻辑操作,例如检查库存可用性(可能基于访问库存资源),或进行付款(可能基于访问付款资源和产品资源)。


1
我认为你是对的。验证逻辑将需要在Rest客户端上使用其他Rest资源(支付、库存等)。问题是我的客户端将是一个智能手机,因此它非常重要的是要CPU和网络友好... 我期望有类似于POST的方法HEAD这样的东西。让我解释一下:方法HEAD用于获取资源的元数据信息,如果可用或者某些资源的元数据信息。对我来说,最完美的方式就是做一些类似于这样的事情,但是针对POST请求。如果不可能的话,你的解决方案是处理它的最佳Restful方式。 - padilo
1
我认为使用HEAD可能有点奇怪...因为验证逻辑和处理逻辑分别在两个请求中,可能存在一些不安全性。实际上,尽管rest的概念非常流行,但要设计好它却很难,大多数api似乎只是看起来像restful(特别是url模式)。我建议您在rest api之上构建业务api,或者将验证逻辑放在post方法中(无需坚持rest概念)。 - ltebean
1
谢谢,最终我不需要支持验证服务了,所以我只会在POST方法中进行验证。如果以后需要验证,我会做一个商业API。 :) - padilo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接