tamkeenlms / tamkeelms-api
Tamkeen LMS API(tamkeenlms.com)
Requires
- guzzlehttp/guzzle: ^6.3
This package is not auto-updated.
Last update: 2024-09-29 04:20:22 UTC
README
这是官方 Tamkeen LMS API 客户端的文档。您可以使用此 API 客户端执行一些简单的操作,例如检索课程或为这些课程之一提交新的请求。
- Tamkeen LMS API 通过 HTTP 可供您访问,这意味着您可以使用任何编程语言通过任何 cURL 库调用它。
- 您必须在每个请求中传递 API 密钥。此密钥将由 Tamkeen 团队提供。但请注意,此密钥可能会且将会不时更改,尤其是随着新更新的发布。
- 响应将始终以 JSON 格式。
- API 的限制为每分钟 1000 个请求。之后您需要等待整整一分钟才能提交另一个请求。在这种情况下,响应将是“尝试次数过多。”,状态码为 429。
- 您可以在任何请求中请求特定语言区域设置以获取响应。目前可用的区域设置为“en”和“ar”。当响应包含文本时,例如验证消息时,这将很有用。您可以通过在 URL 的查询字符串中传递“locale=[locale]”来为每个请求设置区域设置。例如:
POST api/v1/courses/signup?locale=ar
。 - 大多数请求都需要您指定应执行请求的分支。例如,当请求 API 的课程列表时,您必须在请求中指定您需要获取课程的分支的
id
。这是通过在 URL 查询字符串中传递分支的id
来完成的。例如:GET api/v1/courses?branch=1
。 - 您可以通过在浏览器中请求 API 的 URL 或通过像 Postman 这样的工具来熟悉 API。
安装
您可以使用 Composer 安装此库
composer require tamkeenlms/tamkeelms-api
现在,在您的代码中,您需要通过设置基本请求信息(即 API 密钥和 API 的基本 URI)来初始化 API。
TamkeenLMSAPI\Client::setup([API base uri], [API key]); //Example: TamkeenLMSAPI\Client::setup('https://company.com/app/public/api/v1/', 'UOYfo9YLk4NTjhx6yyVG0rDDkCt2aFCOeCwtbZfUAdeu8f');
基本 URI 应该是 API URI 的完整路径,例如:https://example.com/app/public/api/v1/。API 密钥将由库所有者或 Tamkeen LMS 团队提供。
请求
获取公司的分支列表
Tamkeen 支持与多个分支(同一公司或组织的不同位置)一起工作,每个分支都有自己的课程、批次、讲座等,当然还有自己的网站课程列表。因此,您需要在您的应用程序中代表这一点,并区分每个分支的数据。此请求返回已添加到系统中的分支列表,每个分支都有 id 和名称。您需要使用此请求来获取分支列表,以便用户可以在例如注册课程时进行选择。
示例
$request = new TamkeenLMSAPI\Requests\Branches(); $response = $request->get();
示例响应
{ "branches":[ { "id":1, "name":"Branch 1", "code":"HQ", "currency":"EGP" } ] }
获取课程
首先,您需要理解这里有两种不同的数据模型;一个是课程
,另一个是网站课程
。课程是在系统中注册的培训课程,而网站课程
是一个封装课程并携带其属性在网站上的模型,前提是它被选择在网站上显示!因此,返回的列表将包含课程和网站课程,第一个被包含在后者中,如下面的示例请求所示。
Tamkeen LMS支持多分支机构,因此每个课程都是添加到应用中,并且添加在分支下,课程也按类别分组。所以,当获取任何一组课程时,您需要传递分支和类别的ID。至于分支和类别的ID,您可以通过以下其他请求获取。
$request = new TamkeenLMSAPI\Requests\Courses\Courses([branch id], [category id]); $response = $request->get();
返回的响应将如下所示
{ "courses":{ "total":2, "per_page":20, "current_page":1, "last_page":1, "next_page_url":null, "prev_page_url":null, "from":1, "to":2, "data":[ { "id":1, "course_id":1, "category_id":1, "about":"HTML information about this course ....", "course":{ "id":1, "name":"Course 1 name", "cost":"300.00", "cost_basis":"lecture", "duration":"30", "duration_unit":"day" } } ] } }
如你所见,返回的响应包含了分页功能,这意味着您只需通过在uri中传递页码即可简单地分页浏览课程。例如:GET courses?branch=1&category=1&page=2
此请求将返回完整列表的第2页。每页有20个课程。
$request = new TamkeenLMSAPI\Requests\Courses\Courses([branch id], [category id]); $request->setPage([page numver]); // The page number
获取单个课程
您只能通过此请求获取单个课程的信息
$request = new TamkeenLMSAPI\Requests\Courses\Course([course id]); $response = $request->get();
获取课程类别
在Tamkeen LMS端,课程是分类的,当检索课程列表时,您需要指定目标课程的类别,通过ID。以下是获取这些类别完整列表的方法
$request = new TamkeenLMSAPI\Requests\Courses\Categories([branch id]); $response = $request->get();
示例响应
{ "categories":[ { "id":1, "name":"Test Category", "description":"Category description" }, { "id":2, "name":"Category 2", "description":"Category 2 description" } ] }
提交课程请求(注册)
通过您的应用和我们的API,您不仅可以列出和查看存储在Tamkeen LMS数据库中的课程,还可以提交一个课程请求(由您的应用用户之一发起)以存储和显示在我们的端。您将负责构建表单并验证用户的输入,然后将其提交给我们。当然,您需要附上课程的ID(用户请求的课程,代表的是网站课程
,而不是课程
本身)以及请求。
您可以在表单中请求以下数据:课程(=course_id)、姓名(=name)、电话号码(=phone_number)、电子邮件(=email)、职位名称(=job_title)、备注(=note)。当然,只有course_id、name和phone_number值是必需的。您不需要在此处提交分支的ID,因为我们可以根据您选择的课程找到它。
用户提交后,将被添加到指定网站课程下的临时列表中,然后经过过滤后可以添加到应用程序中该课程的实际等待列表。
示例
$request = new TamkeenLMSAPI\Requests\Courses\Signup([ 'course_id' => $_POST['course_id'], 'name' => $_POST['name'], 'phone_number' => $_POST['phone_number'], 'email' => $_POST['email'], 'job_title' => $_POST['job_title'], 'note' => $_POST['note'], ]); // Submit the sign up request $response = $request->submit();
您通过API发送的信息将通过严格的验证规则,如果验证失败,将返回错误和验证消息。例如
{ "error":"invalid_input", "messages":[ "The name field is required." ] }
您可以将这些错误消息显示给用户,以便他们可以检查返回的错误。
如果注册过程成功,API将返回
{ "message":"success" }
或者在失败时返回以下内容
{ "message":"failed" }
帮助
我们非常愿意帮助您使用Tamkeen LMS API,如果您有任何问题,请随时通过contact@tamkeenlms.com联系我们,或者只需在此存储库中打开一个新的问题,用于代码问题、错误和功能请求。
谢谢,祝您好运。
Tamkeen LMS团队