J'essaie de retourner un code d'état de 304 non modifié pour une méthode GET dans un contrôleur web api.
La seule façon dont j'ai réussi était quelque chose comme ça:
public class TryController : ApiController
{
public User GetUser(int userId, DateTime lastModifiedAtClient)
{
var user = new DataEntities().Users.First(p => p.Id == userId);
if (user.LastModified <= lastModifiedAtClient)
{
throw new HttpResponseException(HttpStatusCode.NotModified);
}
return user;
}
}
Le problème ici est que ce n'est pas une exception, il n'est tout simplement pas modifié donc le cache client est OK. Je veux également que le type de retour soit un utilisateur (comme le montrent tous les exemples d'API Web avec GET) et non pas HttpResponseMessage ou quelque chose comme ça.
new HttpResponseMessage(HttpStatusCode.NotModified)
? Ça ne marche pas?
beta
ou construisez -vous tous les soirs ?