具有授权的REST api cacheablity

时间:2015-11-19 05:30:26

标签: api rest caching authorization

我正在为网络应用程序构建受保护的api 为每个Web服务调用客户端发送访问令牌 当根据访问令牌调用资源时,它会返回不同的响应     例如: - 致电/员工只会返回无障碍员工。将为每个访问令牌定义可访问性 我的问题是如果根据访问令牌返回不同的东西,如何缓存响应是可能的 是缓存中考虑的请求的访问令牌部分?
如果API不可缓存,那么它可以是REST吗? 是部分访问REST中允许的资源吗?

1 个答案:

答案 0 :(得分:-1)

@DamithK请清除你想要做什么我没有得到它......“当根据访问令牌调用资源时,它会返回不同的响应。 但据我所知,你想要验证你的每个api电话。 如果您使用RestClient进行呼叫api,您可以通过以下方式进行。请致电Api

var client = new RestClient(Serviceurl);
        var request = new RestRequest("/Apimethod/{Inputs}?oauth_consumer_key=1ece74e1ca9e4befbb1b64daba7c4a24", Method.GET);
        IRestResponse response = client.Execute(request);

在您的服务中

public static class Authentication
{
    public static bool AuthenticateRequest(IncomingWebRequestContext context)
    {
        bool Authenticated = false;
        try
        {
            NameValueCollection param = context.UriTemplateMatch.QueryParameters;
            if (param != null && param["oauth_consumer_key"] != null)
            {
                string consumerSecretKey = "1ece74e1ca9e4befbb1b64daba7c4a24";
                Authenticated = param["oauth_consumer_key"] == consumerSecretKey;
            }
            else
            {
                WebOperationContext.Current.OutgoingResponse.StatusCode = HttpStatusCode.Unauthorized;
            }

        }
        catch (Exception)
        {

        }
        return Authenticated;
    }
}

使用

验证被调用方法中的每个请求
Authentication.AuthenticateRequest(WebOperationContext.Current.IncomingRequest)

所有这些都是c#代码