0

我想构建一个 REST Web 服务,它将提供:

  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 发布协议(AtomPub) 可能是一个很好的候选者,因为他们对 Web 服务的愿景如果非常接近我想要的,但它似乎不支持嵌套集合。

4

1 回答 1

1

文章API 设计的未来:编排层表明基于查询的 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 端点,这些端点呈现不同的信息视图?

于 2014-03-16T00:25:37.750 回答