Breeze元数据请求具有缓存半身像的URL

Pab*_*meo 6 caching asp.net-web-api breeze hottowel

我目前正在使用Breeze.js(版本1.4.1)以及HotTowel模板,一切都运行得非常好.

但是,我想知道是否有一种方法可以在发送的请求中包含breeze,以使元数据成为可配置的后缀,例如?v=1.0.0.1,与我目前require.js在版本更改期间破坏本地缓存的方式类似.

这将提供让用户在本地缓存元数据并避免对相同的未更改元数据的不必要请求的好处.甚至还有服务器端缓存,并尽可能避免元数据生成.

对于实际的WebApi缓存,我目前正在使用WebApi.OutputCache,以便与之相配.

Pab*_*meo 6

好吧,我找到了一种方法,没有微风的任何特定支持,只有WebApi路由.

我只是基本上将控制器路由更改为以下内容:

GlobalConfiguration.Configuration.Routes.MapHttpRoute(
            name: "BreezeApi",
            routeTemplate: "breeze/{appVersion}/{controller}/{action}"
        );
Run Code Online (Sandbox Code Playgroud)

然后在创建时EntityManager,我按如下方式执行:

var manager = new breeze.EntityManager('breeze/' + appVersion + '/data');
Run Code Online (Sandbox Code Playgroud)

appVersion增量数字版本值在哪里.

这使您可以在以后为元数据操作配置缓存,例如:

[HttpGet]
[CacheOutput(ClientTimeSpan = CLIENT_DURATION, ServerTimeSpan = SERVER_DURATION)]
public string Metadata()
{
    return _contextProvider.Metadata();
}
Run Code Online (Sandbox Code Playgroud)

如果某人有更清洁的解决方案,或者内部通过微风实施的解决方案,我会保留问题.