gpt4 book ai didi

api - REST:通过多个 id 访问集合的成员

转载 作者:行者123 更新时间:2023-12-04 14:12:48 30 4
gpt4 key购买 nike

我有一个 REST 服务处理网络上的视频服务器。

可以通过多种方式识别每个视频服务器:通过其序列号、
按其名称或机器编号。

为了返回我的网络上可用的所有服务器的集合,事情
非常简单:我定义了以下路线:

[Route("/servers", "GET")]

以及以下请求类:
public class ServerCollection : IReturn<List<ServerDto>>
{
...
}

现在,我想从我的收藏中返回一个特定的服务器,识别
它可以通过其序列号、机器名称或机器编号。

为此,我定义了以下路线:
[Route("/servers/{SerialNumber}", "GET")]
[Route("/servers/machinenumbers/{MachineNumber}", "GET")]
[Route("/servers/machinenames/{MachineName}", "GET")]

以及以下请求类:
public class Server : IReturn<ServerDto>
{
public uint SerialNumber { get; set; }
public uint MachineNumber { get; set; }
public string MachineName { get; set; }
}

因此,我可以通过以下方式访问我的服务器集合:
GET /servers

并使用以下任一方法获取特定服务器:
GET /servers/3
GET /servers/machinenumbers/42
GET /servers/machinenames/supercalifragilisticexpialidocious

这是正确的方法吗?我感觉这不是很
休息的。我是否应该将此视为在我的收藏中进行搜索而不是使用“人工”
资源?

最佳答案

我会以一种始终唯一的方式表示服务(序列号可能是正确的)。

对于查询,我会做类似 /servers/?name=[name] 的事情或 /server/?id=[id]或只是 /servers/[serial] (如果你想直接使用序列号)。请求名称或 ID 时,您应该将请求中的 url 更改为 servers/[serial]保持网址的唯一性。

关于api - REST:通过多个 id 访问集合的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17260385/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com