#canvas #lms #system-api #connector #education #data-access #api-access

canvas_lms_connector

此库提供了一系列与Canvas学习管理系统API交互的功能。

7个版本

0.1.6 2023年11月21日
0.1.5 2023年11月19日

1 in #lms

每月 45 次下载

MIT 许可证

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",请按照以下步骤操作

  1. 添加依赖项:

    • 打开您的项目文件 Cargo.toml,并将 canvas_lms_connector 添加到 [dependencies] 部分
      [dependencies]
      canvas_lms_connector = "latest_version"
      
  2. 更新项目:

    • 在您的项目目录中运行此命令以下载和安装库
      cargo update
      
  3. 构建项目:

    • 编译您的项目以验证安装
      cargo build
      

初始配置

为了首次使用配置 "Canvas LMS Connector",请按照以下步骤操作

  1. 获取 Canvas API URL:

    • 访问您的 Canvas LMS 实例。URL 通常格式为 https://[your-institution].instructure.com
    • /api/v1 添加到此 URL 的末尾。例如,https://[your-institution].instructure.com/api/v1
    • 这是您的 Canvas API 基础 URL。
  2. 生成 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的安全连接中发挥着至关重要的作用。以下小节详细介绍了获取和存储这些凭证的可用方法。

  1. 通过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)中存储凭证可能会使其容易受到未授权访问。此方法应谨慎使用,并且仅用于开发和测试目的,确保生产凭证以更安全的方式进行管理。
  2. 使用 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