使用Web Api GET方法

时间:2015-10-14 09:04:28

标签: asp.net-web-api

我的WEB API有一个如下所述的GET方法,它将根据id返回一个资源。

public HttpResponseMessage Get(string id)
{
   ....      
}

我还有一个要求,我需要检查 资源是否存在(无需返回资源)。

我想知道,是否按照真正的RESTful服务 我是否需要为第二个要求编写单独的GET或使用 现有的。

2 个答案:

答案 0 :(得分:1)

我们可以使用Web API 2的 IHttpActionResult 来满足这些要求。这是代码片段。使用 IHttpActionResult 将为具有HTTP状态代码和响应对象的客户端提供正确的响应。

public IHttpActionResult Get(string id)
        {
            //IsResourceExists is method taking  id and return response
            var response = IsResourceExists(id);

            //Assuming 'response' is TRUE
            if (response)
            {
                return Ok(response);
            }
            else
            {
                return NotFound();
            }
        }

答案 1 :(得分:0)

如评论中所述,您希望能够在不返回资源的情况下检查资源是否存在。

为此,您可以使用定义hereHEAD

  

9.4 HEAD

     

HEAD方法与GET相同,只是服务器不能在响应中返回消息体。响应HEAD请求的HTTP头中包含的元信息应该与响应GET请求时发送的信息相同。该方法可用于获得关于请求所暗示的实体的元信息,而无需转移实体主体本身。此方法通常用于测试超文本链接的有效性,可访问性和最近的修改。

     

对HEAD请求的响应可以是可缓存的,因为响应中包含的信息可用于从该资源更新先前缓存的实体。如果新字段值指示缓存的实体与当前实体不同(如Content-Length,Content-MD5,ETag或Last-Modified中的更改所示),则缓存必须将缓存条目视为陈旧。

我没有代码为您提供有关如何实施HEAD请求的答案,但如果直接关闭,快速搜索也会this result google cached

希望指出你正确的方向!