SentryAPI用于向Sentry收集器提交事件以及导出和管理数据。本文档仅涵盖WebAPI。版本控制WebAPI的当前版本称为v0,处于草稿阶段。身份验证AuthTokens使用auth标头传递,并用于通过API作为用户或组织帐户进行身份验证。在我们的文档中,我们有几个占位符出现在大括号或V形之间,例如{API_KEY}或,您需要将其替换为您的身份验证令牌之一才能有效地使用API调用。例如,当文档说:curl-H'Authorization:Bearer{TOKEN}'https://sentry.io/api/0/projects/如果你的身份验证令牌是1a2b3c,那么命令应该是:curl-H'授权:Bearer1a2b3c'https://sentry.io/api/0/projects/您可以通过创建内部集成在Sentry中创建身份验证令牌。这也适用于自托管哨兵。https://docs.sentry.io/product/integrations/integration-platform/#internal-integrationsDSN身份验证某些API端点可能允许基于DSN的身份验证。这通常是非常有限的,端点会描述是否支持。这类似于不记名令牌身份验证,但使用您的DSN(客户端密钥)。curl-H'Authorization:DSN{DSN}'https://sentry.io/api/0/projects/APIKeysAPI密钥是一种传统的身份验证方法。它们仍将受到支持,但对新帐户禁用。您应该尽可能使用身份验证令牌。API密钥使用HTTPBasic身份验证传递,其中用户名是您的API密钥,密码是空值。例如,要获取有关您的密钥绑定到的项目的信息,您可以发出这样的请求:curl-u{API_KEY}:https://sentry.io/api/0/projects/您必须传递一个值,这就是为什么:出现在我们的例子中。分页结果API中的分页是通过链接标头标准处理的:curl-ihttps://sentry.io/api/0/projects/1/groups/HTTP/1.0200OKDate:Sat,14Feb201518:47:20GMTContent-Type:应用程序/jsonContent-Language:enAllow:GET,HEAD,OPTIONSLink:;rel="previous";results="false",;rel="next";results="true"HTTP/1.0200OKDate:Sat,14Feb201518:47:20GMTContent-Type:application/jsonContent-Language:enAllow:GET,HEAD,OPTIONSLink:如果支持,上一页和下一页总是返回游标,即使没有相同的追求结果。这允许您查询API以获取您尚未发现的结果。使用它的一个示例是当您实现轮询行为并且您想要查看是否有任何新数据时。我们返回results="[true|false]"指示符以确定您是否真的需要分页。分页示例以下是使用此API端点的分页示例:https://docs.sentry.io/api/events/list-an-issues-events/此示例中的HTTP请求返回问题的100个事件,并且在响应包含以下链接标头:;rel="previous";results="false";cursor="0:0:1",;rel="next";results="true";cursor="0:100:0"link响应中的URL具有rel=next,表示结果的下一页。它还具有results=true,这意味着有更多的结果。基于此,下一个请求是GET此请求将再次返回此问题的下100个事件,链接标头如下:;rel="previous";results="true";cursor="0:0:1",;rel="next";results="true";cursor="0:200:0"重复该过程,直到rel=next的URL具有标志results=false以指示最后一页。cursor的三个值分别是:游标标识符(整数,通常为0)、行偏移量、is_prev(1或0)。权限和范围如果您在Sentry的API之上构建(例如使用AuthTokens),您将需要特定的范围来访问不同的API端点。https://docs.sentry.io/api/auth/要设置集成令牌的范围,请从下拉菜单中选择范围。这些可以稍后编辑。https://docs.sentry.io/product/integrations/integration-platform/#permissions要设置授权令牌的范围,请在创建授权令牌时选中必要的复选框。https://sentry.io/api/如果您正在寻找有关成员角色的信息,请访问成员文档。https://docs.sentry.io/product/accounts/membership/组织项目project:releases范围将允许您访问项目和组织发布端点。API文档的发布部分列出了可用的端点。https://docs.sentry.io/api/releases/团队成员问题和事件PUT/DELETE方法仅适用于更新/删除问题。Sentry中的事件是不可变的,只能通过删除整个问题来删除。请注意,如果您使用sentry-cli来管理您的发布,您将需要一个也具有org:read范围的令牌。请求所有API请求都应使用/api/0/前缀,并将返回JSON作为响应:curl-ihttps://sentry.io/api/0/HTTP/1.0200OKDate:Sat,14Feb201518:47:20GMTContent-Type:application/jsonContent-Language:enAllow:GET,HEAD,OPTIONS{"version":"0"}HTTP/1.0200OKDate:Sat,14Feb201518:47:20GMTContent-Type:application/jsonContent-Language:enAllow:GET,HEAD,OPTIONS{"version":"0"}HTTPVerbsSentry试图坚持正确的HTTP动词,但我们总是优先考虑可用性而不是正确性。参数和数据URL中未包含的任何参数都应编码为JSON,Content-Type为“application/json”:curl-ihttps://sentry.io/api/0/projects/1/groups/\-d'{"status":"resolved"}'\-H'Content-Type:application/json'有时会通过查询字符串指定额外的参数,即使对于POST、PUT和DELETE请求也是如此:curl-ihttps://sentry。io/api/0/projects/1/groups/?status=unresolved\-d'{"status":"resolved"}'\-H'Content-Type:application/json'