Rest 以平静的方式处理区域

Rest 以平静的方式处理区域,rest,api-design,Rest,Api Design,我正在设计一个与不同地区的多台服务器对话的系统。同一请求的每个地区将返回唯一的结果,例如,从澳新到欧洲、中东和非洲,用户a的设备配置可能不同 关于设计系统的最佳方法是什么,我们提出了一些问题,以便获得最大的通用性 问题: 创建了一个函数,因此,如果在未指定区域的情况下进行API调用,将返回所有区域的结果。这是明智之举,还是强制指定一个区域更好 以平静的方式处理地区(澳新银行、欧洲、中东和非洲、印度、亚洲、美国)的最佳方式是什么。我的第一个想法是/region/anz/userid/123,但如果

我正在设计一个与不同地区的多台服务器对话的系统。同一请求的每个地区将返回唯一的结果,例如,从澳新到欧洲、中东和非洲,用户a的设备配置可能不同

关于设计系统的最佳方法是什么,我们提出了一些问题,以便获得最大的通用性

问题:

  • 创建了一个函数,因此,如果在未指定区域的情况下进行API调用,将返回所有区域的结果。这是明智之举,还是强制指定一个区域更好

  • 以平静的方式处理地区(澳新银行、欧洲、中东和非洲、印度、亚洲、美国)的最佳方式是什么。我的第一个想法是/region/anz/userid/123,但如果我们想对一个用户进行全局搜索,这需要打x个电话。这是更好的方法还是在URL的末尾添加区域(如so/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模板轻松描述的标识符。看

    在web上,常见的uri模板机制是HTML表单;表单处理规则要求在查询字符串上粘贴
    application/x-www-form-urlencoded
    值。因此,HTML友好的拼写可能更像

    GET /report?userid=123&region=global
    
    当然,您可以使用“web表单端点”重定向到“真实”的目标uri,所以这并不重要