【问题标题】:Building REST web services with nested collections + collections inside entries使用嵌套集合 + 条目内的集合构建 REST Web 服务
【发布时间】:2013-11-07 11:30:36
【问题描述】:

我想构建一个 REST 网络服务,它可以提供:

  1. 嵌套集合,
  2. 条目内的集合。

嵌套集合将用于将概念从一般到特殊细化,例如:

/vehicles/road_vehicles/cars/AB-123-CD

这个想法是限制出现在 Web 服务根目录的概念数量。

条目内的集合将用于访问部分条目,例如:

/cars/AB-123-CD/engine/spark_plugs/1

对于 ID 为“AB-123-CD”的汽车的第一个火花塞可能是一个很好的 URI。每当删除“容器”意味着删除其所有部分时,嵌套集合才有意义。

DELETE /cars/AB-123-CD

显然会删除:

/cars/AB-123-CD/engine/spark_plugs/1

以及汽车的所有其他部分(将汽车视为被 DELETE 送去报废)。

问题:虽然这种“干净的 URI”非常普遍,但是否有任何软件可以简化此类 Web 服务的构建?

似乎Atom Publication Protocol (AtomPub) 可能是一个很好的候选者,因为他们对 Web 服务的愿景如果非常接近我想要的,但它似乎不支持嵌套集合。

【问题讨论】:

    标签: rest atompub


    【解决方案1】:

    The future of API design: The orchestration layer 文章指出,基于查询的 API 正在将权力交到提出请求的开发人员手中,尽管这种权力是有限的。您可以在 AtomPub 构建工具中使用 AtomPub 和查询参数。我找到了一些搜索“基于 API 查询”的示例,但找不到实际定义。

    https://developers.google.com/google-apps/contacts/v3/#retrieving_contacts_using_query_parameters
    http://resources.arcgis.com/en/help/arcgis-rest-api/index.html#/Query_Related_Records_Map_Service_Dynamic_Layer/02r3000000nt000000/
    

    作者接着说,基于体验的 API 具有特定于设备的包装器,但它们是由设备团队设计、实施和拥有的。也许解决您的问题的方法是创建不同的 AtomPub 端点,这些端点呈现不同的信息视图?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      相关资源
      最近更新 更多