Sentry 开发者贡献指南 - Web API

简介: Sentry 开发者贡献指南 - Web API

版本控制



Web API 的当前版本称为 v0,被认为处于草稿阶段。


身份验证



Auth Tokens


身份验证令牌使用 auth 头传递,并用于通过 API 以用户或组织帐户身份进行身份验证。在我们的文档中,我们有几个出现在花括号或 V 形之间的占位符,例如 {API_KEY} 或 <auth_token>, 您需要将其替换为您的身份验证令牌之一才能有效地使用 API 调用。


例如,当文档显示:


curl -H 'Authorization: Bearer {TOKEN}' https://sentry.io/api/0/projects/


如果您的身份验证令牌是 1a2b3c,那么命令应该是:


curl -H 'Authorization: Bearer 1a2b3c' https://sentry.io/api/0/projects/


您可以通过创建一个内部集成在 Sentry 中创建身份验证令牌。这也适用于自托管的 Sentry。


DSN Authentication


某些 API 端点可能允许基于 DSN 的身份验证。这通常非常有限,并且端点将描述其是否受支持。这与 Bearer token 身份验证类似,但使用您的 DSN(Client Key)。


curl -H 'Authorization: DSN {DSN}' https://sentry.io/api/0/projects/


API Keys


API keys 是一种传统的身份验证方法。它们仍然会被支持,但对于新帐户是禁用的。您应该尽可能使用 authentication tokens。


API keys 使用 HTTP Basic auth 传递,其中用户名是您的 api key,密码是空值。

例如,要获取有关您的 key 绑定到的项目的信息,您可以做出如下请求:


curl -u {API_KEY}: https://sentry.io/api/0/projects/


您必须为密码传递一个值,这就是我们示例中出现 : 的原因。


分页结果


API 中的分页是通过 Link 头标准处理的:


curl -i https://sentry.io/api/0/projects/1/groups/


HTTP/1.0 200 OK
Date: Sat, 14 Feb 2015 18:47:20 GMT
Content-Type: application/json
Content-Language: en
Allow: GET, HEAD, OPTIONS
Link: <https://sentry.io/api/0/projects/1/groups/?&cursor=1420837590:0:1>;
  rel="previous"; results="false",
  <https://sentry.io/api/0/projects/1/groups/?&cursor=1420837533:0:0>;
  rel="next"; results="true"


如果受到支持,将始终为上一页和下一页返回游标,即使这些页面上没有结果也是如此。这允许您对 API 进行查询以获取尚未发现的结果。一个使用这个的例子是当你实现轮询行为并且你想看看是否有任何新数据。我们返回 results="[true|false]" 指示符以确定您是否真的需要分页。


分页示例


以下是使用此 API 端点的分页示例:

此示例中的 HTTP 请求针对该问题返回 100 个事件,并在响应中包含以下 link 头:


<https://sentry.io/api/0/issues/123456/events/?&cursor=0:0:1>; rel="previous"; results="false"; cursor="0:0:1", <https://sentry.io/api/0/issues/123456/events/?&cursor=0:100:0>; rel="next"; results="true"; cursor="0:100:0"


link 响应中的一个 URL 具有 rel=next,表示下一个结果页面。它也有 results=true,这意味着有更多的结果。


基于此,下一个请求是 GET <https://sentry.io/api/0/issues/123456/events/?&cursor=0:100:0>.

此请求将再次返回该问题的下 100 个事件,并带有以下 link 头:


<https://sentry.io/api/0/issues/123456/events/?&cursor=0:0:1>; rel="previous"; results="true"; cursor="0:0:1", <https://sentry.io/api/0/issues/123456/events/?&cursor=0:200:0>; rel="next"; results="true"; cursor="0:200:0"


重复该过程,直到带有 rel=next 的 URL 具有标志 results=false 以指示最后一页。

cursor 的三个值是:游标标识符(整数,通常为 0)、行 offset 和 is_prev(1 或 0)。


权限和范围



如果你是建立在 Sentry 的 API 之上(例如使用 Auth Tokens),你将需要特定的作用域来访问不同的 API 端点。


要设置 integration token 的作用域,请从下拉菜单中选择作用域。这些可以稍后编辑。

要设置 auth token 的作用域,请在创建 auth token 时选中必要的复选框。

image.gif

image.png


如果您正在寻找有关 membership 角色的信息,请访问 membership 文档。


组织


GET org:read
PUT/POST org:write
DELETE org:admin


项目


GET project:read
PUT/POST project:write
DELETE project:admin

project:releases 范围将允许您访问 project 和 organization release 端点。API 文档的 Releases 部分列出了可用的端点。

https://docs.sentry.io/api/releases/


团队


GET team:read
PUT/POST team:write
DELETE team:admin

成员


GET member:read
PUT/POST member:write
DELETE member:admin

问题和事件


GET event:read
PUT event:write
DELETE event:admin

PUT/DELETE 方法仅适用于更新/删除问题。Sentry 中的事件是不可变的,只能通过删除整个问题来删除。


版本


GET/PUT/POST/DELETE project:releases

请注意,如果您使用 sentry-cli 来管理您的版本,您将需要一个也具有 org:read 范围的 token。


请求

所有 API 请求都应该以 /api/0/ 前缀发出,并将返回 JSON 作为响应:


curl -i https://sentry.io/api/0/


HTTP/1.0 200 OK
Date: Sat, 14 Feb 2015 18:47:20 GMT
Content-Type: application/json
Content-Language: en
Allow: GET, HEAD, OPTIONS
{"version": "0"}


HTTP 动词


Sentry 试图坚持使用适当的 HTTP 动词,但我们总是优先考虑可用性而不是正确性。


方法 描述
DELETE 用于删除资源。
GET 用于检索资源。
OPTIONS 描述给定的端点。
POST 用于创建资源。
PUT 用于更新资源。在可能的情况下接受部分数据。


参数和数据


URL 中未包含的任何参数都应编码为 JSON,其 Content-Type 为 'application/json':


curl -i https://sentry.io/api/0/projects/1/groups/ \
    -d '{"status": "resolved"}' \
    -H 'Content-Type: application/json'


有时通过查询字符串指定附加参数,即使是 POST、PUT 和 DELETE 请求:


curl -i https://sentry.io/api/0/projects/1/groups/?status=unresolved \
    -d '{"status": "resolved"}' \
    -H 'Content-Type: application/json'
相关文章
|
安全 Java API
Java Web 在线商城项目最新技术实操指南帮助开发者高效完成商城项目开发
本项目基于Spring Boot 3.2与Vue 3构建现代化在线商城,涵盖技术选型、核心功能实现、安全控制与容器化部署,助开发者掌握最新Java Web全栈开发实践。
965 1
|
监控 供应链 API
速卖通商品 API,开发者示例
速卖通商品API是速卖通开放平台为开发者提供的接口,支持获取商品详情、订单管理等功能。具备多语言、多货币支持,适用于全球电商场景。可应用于商品分析、价格监控、竞品对比和库存管理等业务。文档提供Python调用示例,便于快速集成使用。
|
JSON 安全 API
电商API入门问答:开发者必知的10个基础问题
本文详解电商API的10个基础知识,涵盖定义、用途、认证、安全等内容,帮助开发者快速入门并提升开发效率。
|
安全 API 网络安全
API安全危机四伏!开发者掌握这“十八般武艺”才能破局?
在数字化时代,API作为连接应用的核心枢纽,其安全性至关重要。本文深入解析API安全攻防实战技巧,涵盖数据传输加密、身份认证、输入验证、速率限制、日志监控、API网关应用及持续安全实践等七大防御策略,帮助开发者全面掌握保护数据接口的关键技能,构筑坚实的安全防线。
821 100
|
NoSQL API 双11
淘宝订单 API 实战:90% 开发者会踩的 “漏单坑”,我用这 3 招彻底解决
本文深入解析了淘宝订单 API 对接中常见的“漏单”问题,结合实战案例拆解了同步逻辑、漏单原因及解决方案。重点分析了“主动轮询”与“回调通知”两种方式的优缺点,指出高频漏单的三大原因:回调丢包、时间窗口设置错误、订单状态判断不全,并提供对应的解决策略。最后分享了一套“回调 + 轮询”双保险方案,帮助彻底杜绝漏单问题。
|
JSON API 开发者
唯品会商品API,开发者示例
唯品会商品API支持获取商品详情、价格及库存信息,适用于开发者集成商品数据。通过如`vip.item_get`等接口,可使用Python等语言调用,实现商品信息查询与列表筛选。实际使用需申请官方授权或通过第三方平台接入,并遵守相关调用规则。
|
JSON 供应链 数据挖掘
VVIC(搜款网)商品 API 开发者详解与使用指南
VVIC(搜款网)是中国知名服装批发平台,提供丰富的货源和供应链服务。其商品API支持开发者通过编程获取商品数据,适用于电商集成、数据分析、选品工具等场景。本文详解API接入流程、核心接口、调用示例及常见问题解决方案,助力高效开发。
|
JSON 数据挖掘 API
Lazada商品 API接口,开发者详解与使用指南
Lazada商品API为开发者提供商品信息获取功能,适用于电商应用开发与数据分析。支持获取标题、价格、库存等详细信息,具备实时更新、高并发支持等特点,适用于竞品分析、价格趋势研究、导购应用及客服系统集成。需获取凭证后调用接口,示例代码使用Python实现。
|
JSON 监控 API
虾皮商品 API,开发者详解与使用指南
虾皮商品API支持开发者获取商品详情及列表,适用于电商导购、价格监控、库存管理等场景。提供商品信息查询、店铺管理、数据分析等功能,助力商家优化运营策略。
|
XML API 开发者
易贝商品API接口,开发者详解与使用指南
eBay 商品 API 为开发者提供商品搜索、详情获取、订单管理等功能,包含 Finding、Shopping、Trading 等接口。支持按关键词搜索、获取商品描述与价格、处理交易流程等,适用于电商分析与店铺运营。调用需注册获取 API 权限与密钥,构建请求并解析 JSON/XML 数据。附 Python 示例代码展示如何获取商品详情信息。