Saltar al contenido

¿Cómo usar el almacenamiento en caché en ASP.NET Web API?

Es imprescindible interpretar el código bien previamente a aplicarlo a tu proyecto si ttienes algo que aportar puedes dejarlo en los comentarios.

Solución:

Desafortunadamente, el almacenamiento en caché no está integrado en ASP.NET Web API.

Mira esto para ponerte en marcha: http://www.strathweb.com/2012/05/output-caching-in-asp-net-web-api/

Un recurso actualizado aquí: https://github.com/filipw/AspNetWebApi-OutputCache

EDITAR: a partir del 2020-02-03, aunque esta respuesta es bastante antigua, sigue siendo válida.

Las dos URL anteriores conducen al mismo proyecto, ASP.NET Web API CacheOutput de Filip W

Agregue una referencia a System.Runtime.Caching en su proyecto. Agregue una clase auxiliar:

using System;
using System.Runtime.Caching;


public static class MemoryCacher

    public static object GetValue(string key)
    
        MemoryCache memoryCache = MemoryCache.Default;
        return memoryCache.Get(key);
    

    public static bool Add(string key, object value, DateTimeOffset absExpiration)
    
        MemoryCache memoryCache = MemoryCache.Default;
        return memoryCache.Add(key, value, absExpiration);
    

    public static  void Delete(string key)
    
        MemoryCache memoryCache = MemoryCache.Default;
        if (memoryCache.Contains(key))
        
            memoryCache.Remove(key);
        
    

Luego, desde su código, obtenga o establezca objetos en el caché:

list = (List )MemoryCacher.GetValue("CacheItem1");

y

MemoryCacher.Add("CacheItem1", list, DateTimeOffset.UtcNow.AddYears(1));

Como ya mencionó OakNinja, el almacenamiento en caché de salida a través de [OutputCache] attributes actualmente no es compatible con ASP.NET Web API.

Sin embargo, hay algunas implementaciones de código abierto que llenan el vacío:

Strathweb.CacheOutput

Una pequeña biblioteca que brinda opciones de almacenamiento en caché, similar a “OutputCacheAttribute” de MVC, a las acciones de la API web.

Github: https://github.com/filipw/Strathweb.CacheOutput
Licencia: Apache v2

cachévaca

Una implementación de almacenamiento en caché HTTP en ASP.NET Web API tanto para el lado del cliente como para el lado del servidor.

Github: https://github.com/aliostad/CacheCow
Licencia: MIT

Nota: Según los proyectos README, la biblioteca no soporta attribute enrutamiento:

Actualmente CacheCow’s attribute la configuración no funciona con el enrutamiento de atributos. Y personalmente creo que no debería usar el enrutamiento de atributos… (Fuente: https://github.com/aliostad/CacheCow/blob/master/README.md)

Hay una buena publicación de blog de Scott Hanselmann que cubre ambos conjuntos de funciones.

Comentarios y puntuaciones de la guía

Si te ha resultado provechoso nuestro artículo, sería de mucha ayuda si lo compartieras con otros programadores de esta forma contrubuyes a dar difusión a nuestro contenido.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *