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 身份验证类似,但使用您的 DSNClient 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=nextURL 具有标志 results=false 以指示最后一页。

cursor 的三个值是:游标标识符(整数,通常为 0)、行 offsetis_prev10)。


权限和范围



如果你是建立在 SentryAPI 之上(例如使用 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 范围将允许您访问 projectorganization 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'


有时通过查询字符串指定附加参数,即使是 POSTPUTDELETE 请求:


curl -i https://sentry.io/api/0/projects/1/groups/?status=unresolved \
    -d '{"status": "resolved"}' \
    -H 'Content-Type: application/json'
相关文章
|
1月前
|
Java API 数据库
构建RESTful API已经成为现代Web开发的标准做法之一。Spring Boot框架因其简洁的配置、快速的启动特性及丰富的功能集而备受开发者青睐。
【10月更文挑战第11天】本文介绍如何使用Spring Boot构建在线图书管理系统的RESTful API。通过创建Spring Boot项目,定义`Book`实体类、`BookRepository`接口和`BookService`服务类,最后实现`BookController`控制器来处理HTTP请求,展示了从基础环境搭建到API测试的完整过程。
42 4
|
1月前
|
开发框架 .NET API
RESTful API 设计与实现:C# 开发者的一分钟入门
【10月更文挑战第5天】本文从零开始,介绍了如何使用 C# 和 ASP.NET Core 设计并实现一个简单的 RESTful API。首先解释了 RESTful API 的概念及其核心原则,然后详细说明了设计 RESTful API 的关键步骤,包括资源识别、URI 设计、HTTP 方法选择、状态码使用和错误处理。最后,通过一个用户管理 API 的示例,演示了如何创建项目、定义模型、实现控制器及运行测试,帮助读者掌握 RESTful API 的开发技巧。
54 7
|
1月前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
100 3
|
11天前
|
前端开发 API 开发者
Python Web开发者必看!AJAX、Fetch API实战技巧,让前后端交互如丝般顺滑!
在Web开发中,前后端的高效交互是提升用户体验的关键。本文通过一个基于Flask框架的博客系统实战案例,详细介绍了如何使用AJAX和Fetch API实现不刷新页面查看评论的功能。从后端路由设置到前端请求处理,全面展示了这两种技术的应用技巧,帮助Python Web开发者提升项目质量和开发效率。
26 1
|
18天前
|
JSON API 数据格式
如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架
本文介绍了如何使用Python和Flask构建一个简单的RESTful API。Flask是一个轻量级的Web框架,适合小型项目和微服务。文章从环境准备、创建基本Flask应用、定义资源和路由、请求和响应处理、错误处理等方面进行了详细说明,并提供了示例代码。通过这些步骤,读者可以快速上手构建自己的RESTful API。
25 2
|
28天前
|
监控 负载均衡 API
Web、RESTful API 在微服务中有哪些作用?
在微服务架构中,Web 和 RESTful API 扮演着至关重要的角色。它们帮助实现服务之间的通信、数据交换和系统的可扩展性。
47 2
|
1月前
|
人工智能 搜索推荐 API
用于企业AI搜索的Bocha Web Search API,给LLM提供联网搜索能力和长文本上下文
博查Web Search API是由博查提供的企业级互联网网页搜索API接口,允许开发者通过编程访问博查搜索引擎的搜索结果和相关信息,实现在应用程序或网站中集成搜索功能。该API支持近亿级网页内容搜索,适用于各类AI应用、RAG应用和AI Agent智能体的开发,解决数据安全、价格高昂和内容合规等问题。通过注册博查开发者账户、获取API KEY并调用API,开发者可以轻松集成搜索功能。
|
1月前
|
存储 安全 API
12种最基本Web API:开发者的必学清单⭐
这些Web API 为创建高度互动和用户友好的网页应用开辟了无限可能。从存储和支付到地理位置和图形,掌握这些 API 可以提升您的Web开发技能。
70 2
|
30天前
|
移动开发 前端开发 JavaScript
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
前端开发实战:利用Web Speech API之speechSynthesis实现文字转语音功能
152 0
|
1月前
|
前端开发 API 数据格式
颠覆传统!AJAX、Fetch API与Python后端,开启Web开发新篇章!
在Web开发领域,技术的快速迭代推动着应用不断进化。传统前后端交互方式已无法满足现代Web应用对高效、实时性和用户体验的需求。AJAX作为异步通信的先驱,使页面无需刷新即可更新部分内容,显著提升用户体验;尽管XML曾是其主要数据格式,但如今JSON已成为主流。Fetch API则以其简洁、灵活的特点成为AJAX的现代替代品,基于Promises的异步请求让开发更加高效。与此同时,Python后端凭借高效稳定和丰富的库支持,成为众多开发者的首选,无论是轻量级的Flask还是全功能的Django,都能为Web应用提供强大的支撑。
37 0