Azure 函数返回不推荐使用的 API 标头

Posted

技术标签:

【中文标题】Azure 函数返回不推荐使用的 API 标头【英文标题】:Azure Function Return Deprecated API Header 【发布时间】:2018-09-13 05:42:16 【问题描述】:

我有一个位于代理后面的 Azure 函数。如果返回的对象发生更新,我们希望在一段时间后弃用该函数。我正在尝试使用in this solution.

提供的内容来创建包含来自 HTTP 标头的预期内容的响应

警告:299 - “已弃用的 API”

我尝试像这样附加 Azure 函数:

 [FunctionName("MyAPI")]
    public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Function,
        "post", Route = null)]
        HttpRequestMessage req,
        TraceWriter log)
                
        object response = await someService.Get();
        if (settingsService.IsDeprecated)
        
            var httpresponse = req.CreateResponse(HttpStatusCode.OK, response, "application/json");
            httpresponse.Content.Headers.Add("Warning", "299 - Deprecated API");
            return httpresponse;
        
        return req.CreateResponse(HttpStatusCode.OK, response, "application/json");
    

我得到了异常

执行函数时出现异常:MyAPI -> 错误的标头名称。确保请求标头与 HttpRequestMessage 一起使用,响应标头与 HttpResponseMessage 一起使用,内容标头与 HttpContent 对象一起使用。

如何在我的 API Http 响应中附加 "Deprecated" status warning?

【问题讨论】:

【参考方案1】:

将你的线路改为

httpresponse.Headers.Add("Warning", "299 - \"Deprecated API\"");

引号似乎对于遵守格式要求很重要。

【讨论】:

以上是关于Azure 函数返回不推荐使用的 API 标头的主要内容,如果未能解决你的问题,请参考以下文章

Azure 函数不返回 XML 响应

Azure HTTP 触发函数调用返回 417 错误代码

Azure API 响应中缺少速率限制标头

Azure API 管理不会在 4xx 上发送 CORS 标头

Azure 函数和 HTTP OPTIONS 请求

构造函数的返回类型定义 - 如何修复此标头