繁体   English   中英

以宁静的方式处理区域

[英]Handling region in a restful manner

我正在设计一个与跨不同区域的多台服务器进行通信的系统。 同一请求的每个区域都将返回唯一的结果,例如,用户 a 的设备配置在 ANZ 到 EMEA 中可能不同。

关于设计系统的最佳方法是什么,以便我们获得最大的多功能性,已经出现了一些问题。

问题:

  1. 创建了一个函数,因此如果在没有指定区域的情况下进行 API 调用,将返回所有区域的结果。 这是一个聪明的做法还是强制指定一个区域会更好?

  2. 以宁静的方式处理地区(ANZ、EMEA、INDIA、ASIA、AMER)的最佳方式是什么? 我的第一个想法是 /region/anz/userid/123,但如果我们想对用户进行全局搜索,这将需要进行 x 次调用。 这是更好的方法还是像这样在 URL 末尾添加区域会更好 /userid/123?region=anz

我的第一个想法是 /region/anz/userid/123,但如果我们想对用户进行全局搜索,这将需要进行 x 次调用。

REST 中的通常答案是创建一个资源来提供全局搜索结果的表示。

GET /global/userid/123

会好的。

GET /global?userid=123
GET /userid/123/global
GET /userid/123?global
GET /userid/123?region=global

这些也都还好 就通用组件而言,URI 在语义上是不透明的。 所以你可以使用任何让人类快乐的东西。

当您拥有一组相关资源时,可以方便地使用由 URI 模板轻松描述的标识符。 请参阅RFC 6570

在 Web 上,常见的 uri 模板机制是 HTML 表单; 和表单处理规则要求在查询字符串上粘贴application/x-www-form-urlencoded值。 所以一个 HTML 友好的拼写可能看起来更像

GET /report?userid=123&region=global

当然,您可以拥有仅重定向到“真实”目标 uri 的“Web 表单端点”,因此这并不重要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM