7个版本
0.1.6 | 2023年11月21日 |
---|---|
0.1.5 | 2023年11月19日 |
1 in #lms
每月 45 次下载
75KB
730 行
Canvas LMS Connector
概述
本文档介绍了Canvas LMS Connector,这是一个Rust库,旨在简化与Canvas学习管理系统(LMS)API的交互。专为将Rust应用程序与Canvas功能集成而设计,此库为教育环境中的数据处理提供了一种有效的解决方案。
Canvas LMS Connector (canvas_lms_connector
) 的重点是提供一个易于访问的接口,让开发者能够与Canvas API进行交互,包括从自动化管理流程到支持教育项目的一切。此库满足各种需求,从课程管理到定制应用程序的开发。
主要功能
- 身份验证:简化了连接到Canvas API的过程,优先考虑凭证管理的简单性和安全性。
- 课程管理:允许访问和管理课程相关信息,包括注册细节和内容。
- 参与者互动:提供管理和与学生和教师沟通的资源。
- 作业和提交:协助管理任务和提交,有助于有效跟踪学术活动。
本文档的目的是提供有关安装、使用和canvas_lms_connector
应用程序示例的详细信息。它旨在成为在各种开发环境中高效使用Canvas API的有用资源。
文档约定
本节概述了Canvas LMS Connector文档中使用的约定。了解这些约定将有助于有效地使用本指南并按照预期解释信息。
符号和语法
- 代码和命令:表示代码、命令或文件名的文本以
等宽字体
呈现。 - 占位符:用尖括号
<angle brackets>
表示的文本表示占位符,用户应将其替换为相关值。 - 环境变量:环境变量名称全部为大写。
术语
- API:指Canvas LMS提供的应用程序编程接口。
- Canvas:Canvas学习管理系统,这是此库交互的主要系统。
突出显示
- 重要提示:标有 重要 的部分包含操作或理解某些功能的关键信息。
- 技巧和建议:使用 提示 来表示建议和最佳实践,以提供额外的指导。
示例
- 在文档中提供了实际示例,以说明使用场景和代码片段。
- 示例命令或代码片段可以直接复制并使用,但可能需要根据特定环境进行调整。
遵循这些约定,本文档旨在为 canvas_lms_connector
的用户提供清晰和一致的指南。如果对这些约定有任何疑问,用户应通过提供的技术支持渠道寻求澄清。
入门指南
先决条件
在开始使用 "Canvas LMS Connector" 之前,请确保满足以下先决条件
系统要求
- Rust 环境:需要一个有效的 Rust 环境,因为 "Canvas LMS Connector" 是用 Rust 编写的。建议使用 Rustup 来安装 Rust 工具链。
- 操作系统:与任何支持 Rust 的标准操作系统兼容,包括 Windows、macOS 和 Linux。
知识要求
- 基本 Rust 知识:为了有效地使用 "Canvas LMS Connector",需要具备 Rust 编程的基本理解。
- 熟悉 Canvas LMS:了解 Canvas LMS 的基本知识,包括其功能和 API 能力,将有所帮助。有关 Canvas LMS API 的更多信息,请参阅 Canvas LMS REST API 文档。
Canvas API 访问
- Canvas 账户:需要访问 Canvas LMS 实例,这可以通过学校、大学或个人开发者账户获得。
- API 令牌:需要从 Canvas LMS 账户设置中获取 API 令牌进行身份验证。
满足这些先决条件将有助于顺利完成初始设置并有效使用 "Canvas LMS Connector"。
安装
要在您的 Rust 项目中安装 "Canvas LMS Connector",请按照以下步骤操作
-
添加依赖项:
- 打开您的项目文件
Cargo.toml
,并将canvas_lms_connector
添加到[dependencies]
部分[dependencies] canvas_lms_connector = "latest_version"
- 打开您的项目文件
-
更新项目:
- 在您的项目目录中运行此命令以下载和安装库
cargo update
- 在您的项目目录中运行此命令以下载和安装库
-
构建项目:
- 编译您的项目以验证安装
cargo build
- 编译您的项目以验证安装
初始配置
为了首次使用配置 "Canvas LMS Connector",请按照以下步骤操作
-
获取 Canvas API URL:
- 访问您的 Canvas LMS 实例。URL 通常格式为
https://[your-institution].instructure.com
。 - 将
/api/v1
添加到此 URL 的末尾。例如,https://[your-institution].instructure.com/api/v1
。 - 这是您的 Canvas API 基础 URL。
- 访问您的 Canvas LMS 实例。URL 通常格式为
-
生成 API 令牌:
- 登录您的 Canvas 账户。
- 导航到
Account
>Settings
。 - 滚动到
Approved Integrations
并单击+ New Access Token
。 - 为令牌提供用途,并设置所需的过期日期。
- 单击
Generate Token
创建新的 API 令牌。 - 安全地存储生成的令牌,因为它将不再显示。
在获取 API URL 和令牌后,您可以使用由 CanvasCredentials
结构提供的 test_canvas_credentials
函数测试这些凭据。此函数有助于验证 API URL 和令牌的有效性。
示例用法
use canvas_lms_connector::credentials::{CanvasCredentials, test_canvas_credentials};
let api_url = "https://your-institution.instructure.com/api/v1";
let access_token = "your_api_token";
let test_result = test_canvas_credentials(api_url, access_token);
match test_result {
Ok(status_code) => println!("Credentials are valid! Status code: {}", status_code),
Err(error_code) => eprintln!("Failed to validate credentials. Error code: {}", error_code),
}
使用API URL和令牌,您现在可以在项目中设置“Canvas LMS 连接器”。通常,这些值被设置为环境变量或在设置文件中进行配置,以确保安全性和易于管理。
创建认证凭证结构
“Canvas LMS 连接器”中的认证过程从获取一个包含之前步骤中获得的必要凭证的 CanvasCredentials
结构开始。该结构在建立与Canvas LMS API的安全连接中发挥着至关重要的作用。以下小节详细介绍了获取和存储这些凭证的可用方法。
-
通过CLI进行交互式认证(首选方法):
credentials
方法首先尝试从系统的密钥存储中检索凭证。- 获取凭证的示例代码
use canvas_lms_connector::credentials::{CanvasCredentials, credentials}; let credentials = credentials();
- 如果不存在,它将通过控制台提示用户输入。然后,这些凭证将被安全存储以供将来使用。
- 关于系统密钥存储访问的说明:当使用
credentials
方法从系统的密钥存储中访问凭证时,系统可能会提示用户输入密码。这是一项标准的安全措施,以确保对敏感信息的授权访问。在第一次运行应用程序或在新设备上运行时,应做好这种提示的准备。 - 可选,对于基于文件的凭证,在
Cargo.toml
中启用use_file_credentials
功能。
[features] use_file_credentials = []
- 启用此功能后,
credentials()
将检查 '下载' 目录中包含以下内容的config.json
文件。{ "url_canvas": "https://your-institution.instructure.com/api/v1", "token_canvas": "your_api_token" }
- 如果存在,则从文件中检索凭证并用于认证。
- 关于基于文件凭证方法的警告:尽管基于文件的认证方法(
use_file_credentials
)方便,尤其是在开发目的上,但它存在重大的安全风险,不推荐用于生产环境。在文件(如config.json
)中存储凭证可能会使其容易受到未授权访问。此方法应谨慎使用,并且仅用于开发和测试目的,确保生产凭证以更安全的方式进行管理。
- 关于基于文件凭证方法的警告:尽管基于文件的认证方法(
- 关于系统密钥存储访问的说明:当使用
-
使用
CanvasCredentials
结构(仅限开发目的):- 仅推荐在开发中使用直接初始化。
- 示例代码
use canvas_lms_connector::credentials::CanvasCredentials; let credentials = CanvasCredentials { url_canvas: "https://your-institution.instructure.com/api/v1".to_string(), token_canvas: "your_api_token".to_string(), };
这些方法确保了与Canvas LMS进行API交互的认证。
检索课程
使用“Canvas LMS 连接器”从Canvas LMS检索课程涉及两个返回不同结果类型的方法:用于多个课程的 CanvasResultCourses
和用于单个课程的 CanvasResultSingleCourse
。
CanvasResultCourses
结构:
- 变体
Ok(Vec<Course>)
:成功,带有课程列表。ErrConnection(String)
:与连接问题相关的错误。ErrCredentials(String)
:与认证或凭证相关的错误。
CanvasResultSingleCourse
结构:
- 变体
Ok(Course)
:成功,带有单个课程。ErrConnection(String)
:与连接问题相关的错误。ErrCredentials(String)
:与认证或凭证相关的错误。
获取所有课程
use canvas_lms_connector::{Canvas, CanvasCredentials, CanvasResultCourses};
let credentials = CanvasCredentials { ... }; // Initialize with your credentials
match Canvas::fetch_courses_with_credentials(&credentials) {
CanvasResultCourses::Ok(courses) => println!("Courses: {:?}", courses),
CanvasResultCourses::ErrConnection(err) => eprintln!("Connection error: {}", err),
CanvasResultCourses::ErrCredentials(err) => eprintln!("Credentials error: {}", err),
}
按ID获取单个课程
use canvas_lms_connector::{Canvas, CanvasCredentials, CanvasResultSingleCourse};
let credentials = CanvasCredentials { ... }; // Initialize with your credentials
let course_id: u64 = 123; // Your course ID
match Canvas::fetch_single_course_with_credentials(&credentials, course_id) {
CanvasResultSingleCourse::Ok(course) => println!("Course: {:?}", course),
CanvasResultSingleCourse::ErrConnection(err) => eprintln!("Connection error: {}", err),
CanvasResultSingleCourse::ErrCredentials(err) => eprintln!("Credentials error: {}", err),
}
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
“Canvas LMS 连接器”现已安装并准备好在您的 Rust 项目中使用。
文档
有关如何使用 Canvas 学习的详细文档,请参阅官方文档。
许可证
本项目采用 MIT 许可证。
依赖关系
约 5-20MB
约 261K SLoC