新闻搜索 API 升级指南
警告
2020 年 10 月 30 日,必应搜索 API 从 Azure AI 服务迁移到必应搜索服务。 本文档仅供参考。 有关更新的文档,请参阅必应搜索 API 文档。 关于为必应搜索创建新的 Azure 资源的说明,请参阅通过 Azure 市场创建必应搜索资源。
本升级指南确定了必应新闻搜索 API 版本 5 与版本 7 的不同之处。 本指南有助于发现需要更新为使用版本 7 的应用部分。
中断性变更
终结点
- 终结点的版本号已从 v5 更改为 v7。 例如,
https://api.cognitive.microsoft.com/bing/v7.0/news/search
。
错误响应对象和错误代码
现在,所有失败请求的响应正文都应包含
ErrorResponse
对象。已将以下字段添加到
Error
对象。subCode
—如果可能,将错误代码分入各个独立桶中moreDetails
—有关message
字段中错误的更多信息
已将 v5 错误代码替换为以下可取的
code
和subCode
值。
代码 | SubCode | 说明 |
---|---|---|
ServerError | UnexpectedError ResourceError NotImplemented |
只要出现任何子代码条件,必应就会返回 ServerError。 如果 HTTP 状态代码为 500,响应就会包含这些错误。 |
InvalidRequest | ParameterMissing ParameterInvalidValue HttpNotAllowed 已阻止 |
只要请求的任何部分无效,必应就会返回 InvalidRequest。 例如,缺少必需参数或参数值无效。 如果错误是 ParameterMissing 或 ParameterInvalidValue,HTTP 状态代码为 400。 如果错误是 HttpNotAllowed,则 HTTP 状态代码为 410。 |
RateLimitExceeded | 只要超过每秒查询数 (QPS) 或每月查询数 (QPM) 配额,必应就会返回 RateLimitExceeded。 如果超过 QPS,必应返回 HTTP 状态代码 429;如果超过 QPM,必应返回 HTTP 状态代码 403。 |
|
InvalidAuthorization | AuthorizationMissing AuthorizationRedundancy |
当必应无法验证调用方身份时,必应会返回 InvalidAuthorization。 例如,缺少 Ocp-Apim-Subscription-Key 头或订阅密钥无效。如果指定多个身份验证方法,便会发生冗余。 如果错误是 InvalidAuthorization,HTTP 状态代码为 401。 |
InsufficientAuthorization | AuthorizationDisabled AuthorizationExpired |
当调用方无权访问资源时,必应会返回 InsufficientAuthorization。 如果订阅密钥已遭禁用或到期,就会发生此类错误。 如果错误是 InsufficientAuthorization,HTTP 状态代码为 403。 |
- 下表列出了新旧错误代码的对应关系。 如果之前依赖 v5 错误代码,请相应地更新代码。
版本 5 code | 版本 7 代码.子代码 |
---|---|
RequestParameterMissing | InvalidRequest.ParameterMissing |
RequestParameterInvalidValue | InvalidRequest.ParameterInvalidValue |
ResourceAccessDenied | InsufficientAuthorization |
ExceededVolume | RateLimitExceeded |
ExceededQpsLimit | RateLimitExceeded |
已禁用 | InsufficientAuthorization.AuthorizationDisabled |
UnexpectedError | ServerError.UnexpectedError |
DataSourceErrors | ServerError.ResourceError |
AuthorizationMissing | InvalidAuthorization.AuthorizationMissing |
HttpNotAllowed | InvalidRequest.HttpNotAllowed |
UserAgentMissing | InvalidRequest.ParameterMissing |
NotImplemented | ServerError.NotImplemented |
InvalidAuthorization | InvalidAuthorization |
InvalidAuthorizationMethod | InvalidAuthorization |
MultipleAuthorizationMethod | InvalidAuthorization.AuthorizationRedundancy |
ExpiredAuthorizationToken | InsufficientAuthorization.AuthorizationExpired |
InsufficientScope | InsufficientAuthorization |
已阻止 | InvalidRequest.Blocked |
对象变化
- 已将
contractualRules
字段添加到 NewsArticle 对象。contractualRules
字段包含必须遵循的规则列表(例如,文章归属)。 必须应用contractualRules
中提供的归属,而不是使用provider
。 仅当 Web 搜索 API 响应包含新闻答案时,文章才包含contractualRules
。
非重大变化
查询参数
对象变化
已将
mentions
字段添加到 NewsArticle 对象。mentions
字段包含在文章中找到的实体(人员或位置)列表。已将
video
字段添加到 NewsArticle 对象。video
字段包含与新闻文章相关的视频。 视频要么是可以嵌入的 <iframe>,要么是动作缩略图。已将
sort
字段添加到 News 对象。sort
字段显示文章排序顺序。 例如,文章按相关性(默认设置)或日期排序。已添加 SortValue 对象,用于定义排序顺序。
isSelected
字段指明响应是否使用了排序顺序。 如果为 true,表明响应使用了排序顺序。 如果isSelected
为 false,可以使用url
字段中的 URL 来请求获取其他排序顺序。