REST API url,用于返回下拉列表的对象子集

时间:2016-06-30 09:48:09

标签: rest asp.net-web-api

在我的系统中,用户可以使用端点/api/account/创建帐户实体。使用此端点,他们可以添加/编辑具有大量属性的对象。

还有另一个实体(服务),当在UI中创建它时,它们必须指定要使用的帐户。

我不希望他们按照/api/account/端点检索所有帐户及其数据,因为有不需要的额外信息,所需的只是ID和名称。

我可以接受一个查询字符串参数,该参数指定要返回的字段,但字段将始终相同,因此不希望必须为每个端点执行此操作,我宁愿为所有实体创建一个通用端点。

那么我有什么RESTful选项可以返回(一致的)数据子集?我可以做/api/relatable/{entity}之类的事情吗?

由于

亚历

1 个答案:

答案 0 :(得分:0)

您可以破坏您的实体,以便帐户实体是最基本的,然后拥有一个拥有其他所有内容的accountDetails实体。这将使您的实体变小,并且无需一起创建数据子集。您的路线可以是/ api / accounts / {id}来获取基本帐户,然后是/ api / account / {id} /详细信息以获取所有其他属性。数据库将是1:1的关系。

另一种选择是使用OData $ select语法。请参阅specs here。我一直在离开OData,因为我觉得它暴露太多,需要对底层方案有太多的了解,但是,有一些很好的事情,这应该可以解决你的问题。