You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何设计REST资源实现跨资源对象查询?REST API功能扩展咨询

REST API 城市筛选功能的资源与请求方法设计

核心设计原则

因为是获取符合条件的城市资源,统一使用GET请求方法,通过查询参数传递筛选条件——这既符合REST规范,又能灵活支持多种筛选维度(名称、人口、面积等),同时和现有API风格保持一致。

场景1:跨所有国家筛选城市

如果需要从全球所有国家中筛选满足条件的城市,新增顶层城市集合资源:

  • 资源路径:/cities
  • 请求方法:GET
  • 筛选参数示例:
    • 按城市名称模糊匹配:GET /cities?name=Paris
    • 按人口范围筛选:GET /cities?minPopulation=1000000&maxPopulation=5000000
    • 按面积下限筛选:GET /cities?minArea=100
    • 多条件组合:GET /cities?name=Lon&minPopulation=8000000

场景2:指定国家内筛选城市

如果仅需要在某个特定国家内筛选城市,直接基于现有资源扩展,在/countries/{countryName}/cities路径上添加查询参数即可:

  • 资源路径:/countries/{countryName}/cities
  • 请求方法:GET
  • 筛选参数示例:
    • 按城市名称匹配:GET /countries/France/cities?name=Lyon
    • 按人口下限筛选:GET /countries/Germany/cities?minPopulation=500000
    • 多条件组合:GET /countries/Japan/cities?name=Tokyo&minArea=200

额外设计细节

  • 参数命名保持语义化,比如用minPopulation而非缩写,提升API可读性
  • 名称匹配可在后端支持模糊逻辑(如包含、前缀匹配),无需单独设计新路径
  • 复杂筛选逻辑(如多条件逻辑组合)仍通过查询参数传递,后端解析处理即可,无需新增资源路径
  • 响应结构和现有/countries/{countryName}/cities的响应保持一致,保证API风格统一

内容的提问来源于stack exchange,提问作者nik0x1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 04:12:48