使用 Refit 转换 url 个参数

Convert url parameters using Refit

我正在使用 Refit 库访问我的 API。这工作得很好,但我在 url.

中使用枚举列表时遇到一些问题
[Get("/track/")]
Task<IList<Track>> GetAll(int size = 20, int from = 0, [AliasAs("content-types")] IEnumerable<TrackSubType> contentTypes = null, IEnumerable<string> tags = null, string language = null);

IEnumerable contentTypes 当前转换为:

https://website.com/track/?content-type=System.Collections.Generic.List`1[Api.Implementation.Models.TrackSubType]

我想要它的格式:

https://website.com/track/?content-type[]=sometype

我怎样才能做到这一点?

我相信默认情况下 Refit 使用列表中的 ToString 来创建查询参数值。您可以创建自己的 class 继承自 list 并覆盖 ToString 方法以在等号右侧实现您想要的。我不太确定为什么不能使用 aliasas 属性添加方括号。

如果不采取一些变通办法,Refit 目前无法解决我的问题。 Refit 的 GitHub 中存在一个问题,其中涵盖了该主题并且有人正在处理它:https://github.com/paulcbetts/refit/issues/4