在我的系统中,用户可以使用端点/api/account/
创建帐户实体。使用此端点,他们可以添加/编辑具有大量属性的对象。
还有另一个实体(服务),当在UI中创建它时,它们必须指定要使用的帐户。
我不希望他们按照/api/account/
端点检索所有帐户及其数据,因为有不需要的额外信息,所需的只是ID和名称。
我可以接受一个查询字符串参数,该参数指定要返回的字段,但字段将始终相同,因此不希望必须为每个端点执行此操作,我宁愿为所有实体创建一个通用端点。
那么我有什么RESTful选项可以返回(一致的)数据子集?我可以做/api/relatable/{entity}
之类的事情吗?
由于
亚历
答案 0 :(得分:0)
您可以破坏您的实体,以便帐户实体是最基本的,然后拥有一个拥有其他所有内容的accountDetails实体。这将使您的实体变小,并且无需一起创建数据子集。您的路线可以是/ api / accounts / {id}来获取基本帐户,然后是/ api / account / {id} /详细信息以获取所有其他属性。数据库将是1:1的关系。
另一种选择是使用OData $ select语法。请参阅specs here。我一直在离开OData,因为我觉得它暴露太多,需要对底层方案有太多的了解,但是,有一些很好的事情,这应该可以解决你的问题。