gpt4 book ai didi

c# - DateTime 在使用 Refit 序列化并用作 url 参数时失去精度

转载 作者:行者123 更新时间:2023-12-04 04:15:18 34 4
gpt4 key购买 nike

我正在构建一个 API 网关,它有一个将 DateTime 值作为参数的端点。它使用 Refit 将此查询转发到底层微服务。

我的问题是,当构建微服务查询的 URL 时,DateTime 值失去了精度。

有没有办法将 Refit 配置为在构建 URL 时使用自定义 DateTime 序列化程序?

微服务端点定义如下:

[Get("/client-sales")]
Task<ClientSaleCollectionR12n> SearchClientSales([Header("Authorization")] string authorization,
DateTime? completedAfter = null,
DateTime? completedBefore = null);

发送到网关的查询:

GET /client-sales?completedAfter=2020-03-20T14:54:26.786&completedBefore=2020-03-21T15:16:33.212

转发到底层微服务时变成这样:

GET /client-sales?completedAfter=03%2F20%2F2020%2014%3A54%3A26&completedBefore=03%2F21%2F2020%2015%3A16%3A33

最佳答案

我能够在定义接口(interface)时指定格式。

Task<ClientSaleCollectionR12n> SearchClientSales([Header("Authorization")] string authorization,
[Query(Format = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'")] DateTime? completedAfter = null,
[Query(Format = "yyyy'-'MM'-'dd'T'HH':'mm':'ss'.'fff'Z'")] DateTime? completedBefore = null);

关于c# - DateTime 在使用 Refit 序列化并用作 url 参数时失去精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60810112/

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