如何处理RESTful API路由以减少返回的对象?

时间:2019-11-19 20:12:05

标签: asp.net asp.net-core asp.net-web-api asp.net-core-webapi asp.net-web-api-routing

长话短说:在一个控制器中,我想操纵返回的对象。让我解释一下:

我有一个GET端点(/api/players),它返回对象列表Player,看起来像这样:

[{
    "playerId": 121231231,
    "name": "M Jordan",
    "teamId": 11,
    "height": 208,
    "position": "SG",
    "field6": 13,
     ...
    "field20": 122,
}]

因此,Player是一个包含很多细节的对象。但是在某些情况下,我只需要返回玩家名称列表。我不需要18个其他字段。因此,我在想并有两种解决方案,但是我不确定哪一种更好,以及这是否是最佳实践:

  1. 选项1: / api / players / names

  2. 选项2: / api / playersNames

我必须说我喜欢第一个,因为它很灵活。每当我需要播放器的另一个“子对象”时,都可以在单个Controller中完成。我可以使用/api/players返回基本对象,然后有其他选项,如:

/api/players/details/api/players/stats/api/players/names等...

您怎么看?这是一个好习惯吗?还是应该为每个控制器保留一个返回的类型并创建控制器,例如:PlayerNamesController

0 个答案:

没有答案