雷竞技电竞外围是一个完全托管的解决方案,提供了您运行获得结果的优秀会议所需的一切,并鼓励在整个组织中对这些结果负责。

为了支持我们以结果为导向的组织问责使命,我们通过全面服务提供对您的数据的程序性访问REST API建立在务实的rest式设计原则。

介绍

我们的API使用面向资源的url,利用了HTTP内建的特性,如身份验证、动词和响应代码。所有请求和响应主体都是杰森编码,包括错误响应。任何非货架HTTP客户端可用于与API通信。

我们相信API是开发人员的用户界面——因此,我们确保我们的API可以很容易地从浏览器中探索!

变化

这是一个无版本的API。事先通知的破坏改变将在此文件中可用,并将通过电子邮件发送到我们的开发者邮件列表。请联络我们support@lucidmeetings.com与团队保持联系。

身份验证

这个API可以使用OAuth2进行认证,或者使用你在Lucid Meetings中创建的API访问令牌。雷竞技电竞外围所有请求都必须通过HTTPS进行。任何通过普通HTTP的请求都将失败。

所有的请求都与Lucid会议中的一个特定用户相关联,并且权限仅限于该用户的能力。雷竞技电竞外围

访问的范围可以是只读或读/写。只读访问将API调用者限制为GET、HEAD和OPTIONS方法。读写访问允许API调用者完全访问以代表用户修改数据。

使用OAuth2进行身份验证

如果您将API作为可能被多个用户使用的应用程序的一部分使用,那么OAuth2是推荐的身份验证方法。看到使用OAuth2 Provider想要查询更多的信息。

使用API访问令牌进行身份验证

要使用API​​访问令牌,请创建访问令牌(请参阅下文)并在请求中的“X-API-令牌”标题中提供。

$ curl -h x-api-key:12345678https://网站.lucidmeetings.com/lucid/api/v1/meetings

如何创建API访问令牌

  1. 在Lucid会议上签名雷竞技电竞外围
  2. 单击帐户链接在页面顶部访问您的个人帐户
  3. 单击授权应用程序按钮对新应用程序进行授权
  4. 单击创建令牌读取或读/写令牌选项的按钮
  5. 输入应用程序的名称作为令牌名称(强烈推荐)
  6. 单击保存标记按钮来存储您的新令牌
  7. 单击显示API令牌链接查看或复制您的令牌

请求

API的基URL是https://网站.lucidmeetings.com / lucid / api / v1在哪里网站应该替换为您的网站子域名。对于Lu雷竞技电竞外围cid Meetings按需客户,基本URL是https://meet.lucidmeetings.com/lucid/api/v1.

JSON的身体

所有帖子,放置和补丁请求都是杰森编码,必须具有内容类型应用/ JSON.,否则API将返回415不支持的媒体类型状态码。

$ curl -h x-api-key:Xhttps://网站.lucidmeetings.com/lucid/api/v1/meetings/123\ -x patch \ -h'内容类型:application / json'\--d'{“name”:“每周工作人员会议”}'

http动词

我们使用标准HTTP动词来表示请求的意图:

  • 选项—为资源和请求者检索一组允许的动词
  • —检索某个资源或资源集合的HTTP头
  • 得到—检索资源或资源集合
  • 邮政—创建资源
  • 修补- 修改资源
  • —设置资源
  • 删除—删除资源

补丁支持增量更新

Luci雷竞技电竞外围d Meetings API同时支持PATCH和PUT方法来更新其资源。PATCH方法通过执行部分更新指令指示应该修改哪些字段。对于Lu雷竞技电竞外围cid Meetings资源,所有指令都是隐式的“REPLACE”,字段名和替换值表示为关键价值对。

{"email": "new.email@example.org"}

有限的HTTP客户端

如果您使用不支持Put,Patch或删除请求的HTTP客户端,请使用一个发布请求X-HTTP-Method-Override标题指定所需的动词。

$ curl -h x-api-key:Xhttps://网站.lucidmeetings.com/lucid/api/v1/meetings/123\ -x post \-h“x-http-method-override:删除”

回应

所有响应主体为杰森编码。

单个资源表示为JSON对象:

{“field1”:“价值”,“field2”:真的,“field3”:[]}

资源集合表示为JSON对象数组:

[{“field1”:“价值”,“field2”:真的,”field3 ": [] }, { " field1”:“另一个值”、“field2”:假的,“field3”:[]}]

时间戳的UTC和格式化ISO 8601.

未命令字段将表示为a而不是没有出现。如果字段是数组,则它将表示为空数组 - 即[]

HTTP状态代码

我们使用HTTP状态码来指示请求的成功或失败。

成功的代码:

  • 200 OK.-请求成功了。反应包括
  • 201年创建——创建资源。指向位置标头中的新资源的URL
  • 204没有内容—请求成功,但没有响应体

错误代码:

  • 400错误请求- 无法解析请求
  • 401年未经授权—没有提供身份验证凭据或身份验证失败
  • 403年被禁止的- 经过身份验证的用户无法访问
  • 404没有找到- 找不到资源
  • 405方法不允许—请求的HTTP方法不被实现或不被允许
  • 410走了- 不再可用所请求的资源
  • 415不支持的媒体类型POST/PUT/PATCH请求没有应用程序/json内容类型
  • 422年Unprocessable实体—修改或创建资源的请求由于验证错误而失败
  • 太多的请求- 请求因速率限制而被拒绝
  • 500、501、502、503等- 发生内部服务器错误

错误

所有400次错误(400,401,403等)将在身体中的JSON对象返回应用/ JSON.内容类型。

{ “未找到信息” }

500系列错误代码(500,501,502等)不返回JSON体。

验证错误

在get / post / put / patch请求上的验证错误的情况下,a422无法治存的入境将返回状态码。JSON响应体将包含一个错误消息数组。

{“消息”:“验证失败”,“错误”:{“资源”:“房间”,“字段”:“嵌入”,“代码”:“Invalid_value”,“详细信息”:“在某些情况下详细信息字符串将提供额外的提示。“}}

如果未知的查询参数提供给GET,a422无法治存的入境将返回状态码。JSON响应体将包含一个错误消息数组。

{"message": "Validation Failed", "errors": {"resource": "meetings", "field": "query string field", "code": "invalid_value", "details": null}}

速率限制

API是单个用户每分钟100学分的速率。请求通常值1学分。但是,嵌入可以增加要求的所需贷记金额。所有响应都包括描述当前速率限制状态的标题:

X-Rate-Limit-Limit: 100 X-Rate-Limit-Remaining: 98 X-Rate-Limit-Used: 2 X-Rate-Limit-Reset: 20
  • X-Rate-Limit-Limit-本期贷方总额
  • X-Rate-Limit-Remaining-本期剩余信贷
  • X-Rate-Limit-Used-用于这项请求的积分数目
  • X-Rate-Limit-Reset- 在信用计数重置之前的秒数

如果达到了速率限制,API将返回太多的请求状态码。在这种情况下,您的应用程序不应该发送任何进一步的请求,直到Rate-Limit-Reset秒已经过去。

字段类型

大多数资源字段被类型化为基本类型,例如纯文本超文本标记语言电子邮件地址枚举整数布尔基等。除了这些基本类型之外,Lucid Meetings API还将一些数据表示为雷竞技电竞外围时间戳元组包括原始值和更容易使用或显示准备值。这基本上是一种轻形式的嵌入

纯文本

在POST、PATCH和PUT操作期间,将对标识为纯文本的输入字段进行过滤,以删除HTML标记。Lucid Meetings模型中的纯文本字段示例包括成员姓名、公司、头衔雷竞技电竞外围等。

超文本标记语言

识别为HTML的输入字段通过htmlpurifier删除不支持的HTML标记和属性。当前的标签集对应于Lucid会议CKEDITOR(WYSIWYG)配置:

雷竞技电竞外围,


    1. 。删除和/或更正无效标记。Lucid会议模型中的HTML字段的示例包括操作项和笔记的描述雷竞技电竞外围字段。

      时间戳

      在内部,应用程序将所有日期和时间存储为UNIX时间戳,将转换为用户的本地时区和语言作为用户界面的问题。对于程序员,方便,我们将时间戳作为一个元组包含Unix时间戳(值)和ISO 8601日期/时间表示形式。ISO 8601格式对用户更友好一些,并且与各种API客户机使用场景兼容。

      {“create_ts”:{“value”:1464124304,“ISO_8601”:“2016-05-24T21:11:44z”,“漂亮”:{时间“:”5:11 PM“,”日期“:”242016年5月“,”TimeZone“:”纽约“}}}

      在处理日期和时间时,API可以使用任何一种格式,但在内部我们始终将ISO 8601值转换为UNIX时间戳斯特洛蒂时期(或同等学历)。strtotime()转换也接受相对格式,如“今天”、“明天”、“下周”等。

      元组

      在内部,应用程序使用整数id作为引用或与已命名属性的显示值相关联的标记。所有命名的属性都是可翻译的,可以在应用程序接口中更改。为了程序员的方便,在显示编码字段时,我们努力同时包含引用ID和显示值。

      {"meeting_id": 1214, "room_id": {"value": 74, "display": "Engineering Team"}, "template_id": {"value": 192, "display": "Staff Meeting Template"}, "name": "Weekly Staff Meeting "}

      当以编程方式处理字段时,我们使用元组的ID部分。例如“role_id”、“member_id”、“organization_id”。为了减少API往返,我们还为引用或字段常量值提供翻译后的(如果可用)显示值。虽然这打破了资源表示的简单性,但对显示值的随时访问已被证明是一种有用的折衷。

      字段过滤

      来自API的所有响应都可以将字段限制为您需要的字段。传入一个领域使用逗号分隔的字段列表查询参数。

      例如:

      GET /清醒/ api / v1 /会议?= meeting_id字段名称

      将有以下响应机构:

      [{“名称”:“每周工作人员会议”,“Meeting_id”:1214},{“姓名”:“代码审查会议”,“Meeting_id”:1212}]

      嵌入

      许多端点支持嵌入相关资源以最小化所需API循环的数量。

      通过传入一个嵌入查询参数来触发嵌入,该参数接受以逗号分隔的端点类型列表。

      得到清醒/ api / v1 /客房/74.?字段= room_id,名称和嵌入=管理器
      {“room_id”:74年,“名字”:“工程团队”、“经理”:[{“room_member_id”:224年,“member_id”:{“价值”:75年,“显示”:“莎莉约翰逊 " } }, { " room_member_id”:333年,“member_id”:{“价值”:157年,“显示”:“卡罗尔·琼斯 " } }, { " room_member_id”:142年,“member_id”:{“价值”:1、“显示”:“鲍勃·史密斯 " } }, { " room_member_id”:276年,“member_id”:{"value": 105, "display": "Jack Bronson"}}]}

      只能从某些端点嵌入某些资源类型。端点文档指定可以嵌入哪些。

      计数

      返回集合的所有端点都提供结果和结果页总数的计数。该计数将在头X-Total-Count中返回。

      get / lucid / api / v1 /会议
      200 OK X-Total-Count:302 X-Total-Pages:31 X-Page-Num:0 X-Per-Page:10链接:网站.lucidmeetings.com / lucid / api / v1 /会议?per_page = 10page = 1&z =>;rel =“下一个”(...结果……

      注意,计数表示可用结果的总数,而不是作为当前响应的一部分返回的数量。

      包封

      如果您的HTTP客户端难以读取状态代码或头,我们可以将所有内容整齐地打包到响应体中。只要将envelope=true作为请求参数,API将始终返回一个HTTP状态码200。真实的状态、标题和响应都在正文中。

      GET /清醒/ api / v1 /会员/不存在吗?信封= true
      200 OK {"status": 404, "headers": {"X-Rate-Limit-Limit": 200, "X-Rate-Limit-Remaining": 150, "X-Rate-Limit-Used": 0, "X-Rate-Limit-Reset": 25}, "response": {"message": "Not Found"}}

      分页

      集合请求可以返回0到100个结果,使用每页查询参数。一个带有参数值大于最大可用值将导致对集合最后一页的响应。默认情况下,所有结束点限制为10个结果。返回分页结果的端点响应包括描述可用结果数量的头:

      • X-Total-Count:集合中的实体总数。
      • X-Total-Pages:可用的页面数(以当前的每页设置为准)。
      • X-Page-Num:结果页的位置,0索引。
      • X-PER-PAGE:每页条目数。

      在下面的示例中,每个页面的设置有21页结果。页面索引为0到20。

      GET /清醒/ api / v1 /会议?per_page = 15和页面= 2
      200 OK X-Total-Count:302 X-Total-Pages:21 X-Page-Num:1 X-Per-Page:15链接:网站.lucidmeetings.com / lucid / api / v1 /会议?per_page = 15&page = 0&z =>;Rel =“prev”,网站.lucidmeetings.com/lucid/api/v1/meetings ? per_page = 15和页面= 2 z = >;rel =“下一个”(...结果……

      并非所有端点都支持分页。如果他们这样做,它将在他们的文件中提到。

      排序

      控件触发的一些端点提供结果排序排序查询参数。sort的值是一个逗号分隔的用于排序的字段列表。可以通过前置来指定降序排序-一个字段。不是所有字段都可以排序。端点文档将列出支持的排序选项。

      除非在端点文档中另有规定,否则所有端点的默认排序是降序创建顺序。

      要进入即将到来的预定会议,以达到会议日期的降序排序:

      get / lucid / api / v1 /会议?sort = -start_time

      转换

      对于将Lucid Meetings数据与其他系统同步的应用程序,可能雷竞技电竞外围需要比较格式不同的值。的转换端点提供了一种确定Lucid会议如何转换或“清理”数据的方法,以了解某些字段类型。雷竞技电竞外围