实现返回先前响应的网络Web API

时间:2018-04-23 16:33:57

标签: api asp.net-core

我目前正在构建具有以下要求的net-core Web API:

  • 所有网络交易必须具有每个端点的唯一Guid标识符
  • 如果端点被先前使用过的Guid命中,则会再次返回为此Guid提供的响应

我试图通过JsonSerializing WebApi控制器中的IActionResult来实现这个,但我遇到了一个问题,我无法反序列化所有IActionResult响应,因为有些没有构造函数。

例如:

JsonSerializationException: Unable to find a constructor to use for type Microsoft.AspNetCore.Mvc.CreatedResult. A class should either have a default constructor, one constructor with arguments or a constructor marked with the JsonConstructor attribute.

有人知道是否可以解决这个问题?

1 个答案:

答案 0 :(得分:1)

就个人而言,我会使用response caching middleware。您可以使它在GUID上有所不同,因此只要请求中包含该GUID,它就只会在GUID不同时呈现操作。

如果你想手动处理这个,请缓存你想要返回的JSON,而不是完整的响应对象。然后,您不需要重新查询数据库等,只需返回响应,这不是那么多开销。