如何解决REST API - 模型绑定时如何将属性从 int/string 转换为 string?
在我的 API 中,我使用 Refit 创建了一个客户端来调用第三方 API。问题是第三方 API 返回不一致的数据。它返回城市名称和邮政编码,但有时这些是整数或字符串:
{
"input": "Pa","cities": [
{
"code": "09100","city": "PAMIERS"
},{
"code": "09130","city": "PAILHES"
},{
"code": 10100,"city": "PARS LES ROMILLY"
},{
"code": 10160,"city": "PAISY COSDON"
},{
"code": 10210,"city": "PARGUES"
}
]
}
所以我创建了这条路线:
public async Task<IActionResult> SearchCity([FromForm] CitySearch data)
{
var api = RestService.For<ICityAPI>("https://vicopo.selfbuild.fr");
try
{
var search = await api.SearchCityListAsync(data.search);
return Ok(search);
}
catch (Exception ex)
{
return StatusCode(StatusCodes.Status502BadGateway,ex);
}
}
谁使用这个客户端:
public interface ICityAPI
{
[Get("/search/{search}")]
Task<CityList> SearchCityListAsync(string search);
}
最终将接收到的 Json 绑定到这个模型:
public class CityList
{
[JsonProperty("cities")]
public List<City> Cities { get; set; }
}
public class City
{
[JsonProperty("city")]
public string city { get; set; }
[JsonProperty("code")]
public string code { get; set; }
}
如果这个 Json 不是常量,我如何将它绑定到我的模型?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。