Sentry API 使用笔记
来源:互联网 发布:手机收银软件免费版 编辑:程序博客网 时间:2024/06/05 11:58
Sentry API 使用笔记
本文为使用Sentry API的笔记, 并非搭建Sentry的笔记
官方文档: https://docs.sentry.io/api/
官方社区: https://forum.sentry.io/
官方提醒:(2017年5月) The current version of the web API is known as v0 and is considered to be in a draft phase. While we don’t expect public endpoints to change greatly, keep in mind that the API is still under development.
身份验证
sentry API 的身份验证参数通过请求头传递,所有API都需要包含此请求头。
requests.get(api_url, headers=header)
如果没有提供此请求头参数会返回错误提示: {"detail": "Authentication credentials were not provided."}
。
headers
具体写法为:
{'Authorization': 'Bearer TOKEN'}
其中TOKEN在项目设置中的API -- Auth Tokens
里设置. 如果TOKEN错误会返回错误提示: {"detail": "Invalid token"}
API 列表
Sentry 的API分为几类, 具体每个API的含义可以直接看官方文档. 本文以Events
类别下的List a Project’s Events
举例说明如何使用这些API.
官方说明如下:
GET /api/0/projects/{organization_slug}/{project_slug}/events/Return a list of events bound to a project.Note: This endpoint is experimental and may be removed without notice.Path Parameters:organization_slug (string) – the slug of the organization the groups belong to.project_slug (string) – the slug of the project the groups belong to.Method:GETPath:/api/0/projects/{organization_slug}/{project_slug}/events/
即:
- 请求方式:get
- 请求地址:
你的sentry地址/api/0/projects/{organization_slug}/{project_slug}/events/
其中organization_slug
是组织名, project_slug
是项目名。
注意:
+ 并非所有请求都是get方式,比如删除相关API使用delete
,更新相关API使用put
。
+ 有些API还需要其他请求头, 比如更新issue的API还需要Content-Type: application/json
处理返回结果
此处以List a Project’s Events¶
API 为例。
如果参数都没问题的话API会以字符串形式返回100个(如果有的话,不足100个则直接返回全部) events
组成的列表, 每个event
都是json
格式的。
直接使用json
模块载入返回结果:
json.loads(response.text)
这样会得到一个列表, 每项均是一个dict
, 每个dict
包含了一个event
的信息。
如果这个项目的event
不止100条, sentry还会返回下一页的url。 没错, sentry把100条event
作为一页请求返回给接口调用, 要获得下一页events
的话需要从返回结果的响应头 response.headers
中获取下一页请求地址。
官方说明如下:
HTTP/1.0 200 OKDate: Sat, 14 Feb 2015 18:47:20 GMTContent-Type: application/jsonContent-Language: enAllow: GET, HEAD, OPTIONSLink: <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"
其中Link
中就包含了我们需要的下一页地址(示例中为https://sentry.io/api/0/projects/1/groups/?&cursor=1420837533:0:0`)
link = response.headers.get('Link')
接下来用正则或者其他什么方式从字符串里提取下一页地址再请求即可, 一直到无法提取到下一页地址或下一页地址返回结果为空。
- Sentry API 使用笔记
- Sentry介绍及使用
- sentry
- Sentry的使用相关调研
- <转>Apache Sentry安装及简单使用
- 使用开源软件sentry来收集日志
- 在cdh中配置和使用sentry服务
- 大数据安全:Ranger与Sentry使用区别
- mount的api使用笔记
- 雅虎天气API使用笔记
- 使用豆瓣音乐API笔记
- 关于Sentry
- Sentry Robots
- sentry配置
- sentry配置
- Sentry 介绍
- sentry使用方法
- Sentry简介
- CC许可协议详解
- 使用 PyPDF2 操作 pdf 文件
- bettercap
- pipenv 简要指南
- lxml.html 中几种解析器的区别
- Sentry API 使用笔记
- [Leetcode][求和问题2Sum/3Sum/4Sum/KSum]相关题目汇总/分析/总结
- 理解Python函数装饰器
- Python 的列表推导式
- EA-企业架构
- HPUoj 1409: Watch Dog [最小生成树]
- [ZOJ1654]放置机器人
- HPU 1410: QAQ & 火星情报局 ( 数学
- 1412: QAQ & 君临天下 || 天行九歌 [区间]