我们有一个新的 GET 服务端点,它需要 DateTime 和 Decimal 数据以及其他参数。为简单起见,这代表我们的请求,还没有任何修复:
app.MapGet("saleEvent", async (string amount, string date) =>
{
long.TryParse(amount, out var requestAmount); //Use *culture* parameter
DateTime.TryParse(date, out var requestDate); //Use *culture* parameter
await DoSomething(requestAmount, requestDate);
});
我们以字符串形式接收数据,因为我们的一些客户位于不同的国家,根据他们的文化采用不同的格式。
我们想要求客户在请求中的某处发送他们的文化,以便能够正确处理接收到的数据。
好吧,在这里,我们为客户找到了许多替代方案,可将其包含在他们的请求中,但我不确定哪种方案最适合或最适合执行此操作:
接受语言标头:似乎表明他们期望在响应中使用哪种文化,与参数无关。不是我们的情况,因为我们的回答只是 200(OK)。
content-language标头:似乎表示正文的语言。由于我们没有收到body,而是一个查询字符串,我怀疑我们应该使用它。
查询中的一个附加参数,例如:
app.MapGet("saleEvent", async (string date, string amount, string culture)
用于相同目的的自定义标头。
其他建议是将日期接收为 UTC+0,但我认为客户不应该担心删除偏移量。
有没有标准的方法来做到这一点?