我应该为应用程序制作 Web 服务,并认为我可以很好地实践良好的实践。我发现它使用的是 REST。但有一件事在其中毫无意义。
为什么使用 URI 来传递任何变量?
我们在上一个项目中所做的是仅使用 POST 并将任何内容作为原始 POST 数据(即 JSON)传递。这不是很 RESTful。但它有一些优点。这在客户端非常简单——我有一个通用函数,它将 URI 和数据作为参数,然后将其包装并发送。
现在,如果我使用正确的 REST,我将不得不将一些数据作为 URI 的一部分(例如,用户 ID)传递。我猜所有其他数据(用户名、电子邮件等)都必须像我们一样作为原始数据。这意味着我必须在某个时候将用户 ID 和其他数据分开。这还不错,但仍然 - 为什么?
编辑 这是一个更详细的例子:
假设您要访问 (GET) 和更新 (POST) 用户数据。您可能在/user下可以访问一个服务,但 RESTful 服务会接受用户 ID 作为 URI ( /user/1234 ) 的一部分。所有其他数据(姓名、电子邮件等)都将用于请求内容(可能是 JSON)。
我提出的是,将用户 ID 放在 URI 中似乎没用。如果您想更新用户数据 - 无论如何您都会将附加数据作为内容发送。如果您想访问它 - 您可以使用相同的通用方法来请求 Web 服务。
我知道 GET 会被浏览器缓存,但我相信如果您使用 AJAX(网络)或任何 HTTP 客户端库(其他平台),无论如何您都必须手动缓存它。
从可扩展性的角度来看 - 您始终可以添加更多服务。