C# RESTAPI:为POST方法和ID集合设计URL和主体

C# RESTAPI:为POST方法和ID集合设计URL和主体,c#,rest,restful-url,C#,Rest,Restful Url,如何根据RESTAPI为post方法定义url及其html正文 场景: 1根据客户端id向客户端集合发送消息 可能的解决办法如下: url: POST message/clients body { "clientIds": "1,2", //please note this is string due to scenario 2 below "Message":"hello" } url: POST message/clients body { "clientIds":

如何根据RESTAPI为post方法定义url及其html正文

场景:

1根据客户端id向客户端集合发送消息

可能的解决办法如下:

url: POST message/clients

body
{
  "clientIds": "1,2",  //please note this is string due to scenario 2 below
   "Message":"hello" 
}
url: POST message/clients

body
{
  "clientIds": "ALL",
   "Message":"hello" 
}
使用字符串而不是数组是我关心的问题

2向所有客户端发送消息

可能的解决办法如下:

url: POST message/clients

body
{
  "clientIds": "1,2",  //please note this is string due to scenario 2 below
   "Message":"hello" 
}
url: POST message/clients

body
{
  "clientIds": "ALL",
   "Message":"hello" 
}
第二个解决方案不能在url上反映所有客户端,这是我所关心的


有更好的解决方案吗?

您可以有两种方法

1,它接受整数数组(客户端ID)


1它只接受消息

这是关于您如何管理它的决定

  • 您可以使用可选参数
  • 您可以传递一个空数组。如果数组长度为0,则假定它为全部
  • 您可以传递一个特殊的id,如-999或任何其他不应该出现在您的系统上的值,然后将其视为全部
  • 您可以添加一个额外的布尔参数来检查它是否为所有?然后从ids数组中获取值。

    根据您的业务逻辑和数据,还有更多


  • 添加一个布尔标志“sendToAllClients”,并将ClientID作为ID数组(int/string/Guid)。仅当sendToAllClients为False时,才从ClientID获取值。这是我考虑的选项之一,但它也需要if条件和一个字段。这是什么意思?