escolalms/headless-h5p

无头 H5P Laravel REST API

维护者

详细信息

github.com/EscolaLMS/H5P

源代码

问题

安装次数: 15,454

依赖关系: 4

建议者: 0

安全: 0

星标: 20

关注者: 2

分支: 20

开放问题: 0

类型:软件包

0.5.2 2024-07-02 07:12 UTC

README

swagger codecov phpunit downloads downloads downloads Maintainability

开始之前

此产品与 Escola LMS 生态系统紧密耦合,且不兼容任何其他 Laravel 应用程序。

工作演示

概念验证演示可在 https://h5p-laravel-demo.stage.etd24.pl/ 查看。

功能

所有功能均通过 REST API 提供,没有使用服务器端渲染的 H5PIntegration global js 变量的 blade 模板,这与 moodledrupalwordpress 的 h5p 插件的方法不同。

此软件包仅提供 REST API 访问端点,这是目前唯一允许无头渲染 h5p 的软件包。

功能包括

  • 播放所有 h5p 内容 - 提供所有基本数据,但仍需要播放器
  • 编辑所有 h5p 内容 - 提供所有基本数据,但仍需要编辑器
  • CRUD 库
  • CRUD 内容
  • .h5p 文件上传库
  • .h5p 文件上传内容
  • 所有其他 h5p 功能,如导出等

文档

查看 Swagger 记录的端点。

一些 测试 也可以是一个很好的起点。

要播放内容,您可以使用 EscolaLMS H5P Player

演示 React 源文件,是前端教程的绝佳起点

安装

  1. composer require escolalms/headless-h5p
  2. php artisan migrate
  3. php artisan h5p:storage-link 请参阅以下内容
  4. php artisan db:seed --class="EscolaLms\HeadlessH5P\Database\Seeders\PermissionTableSeeder" 请参阅以下内容

存储链接

您需要发布许多文件,以便作为公开链接使用。

php artisan h5p:storage-link 创建从 storage/app/h5vendor/h5p/h5p-corevendor/h5p/h5p-editor 到公共访问的符号链接,如下所示

public_path('h5p') => storage_path('app/h5p'),
public_path('h5p-core') => base_path().'vendor/h5p/h5p-core',
public_path('h5p-editor') => base_path().'vendor/h5p/h5p-editor',

Cors

所有端点都需要来自其他域的访问,因此必须正确设置 CORS

除了端点资产外,还必须公开 CORS 标头。您可以通过设置 Apache/Nginx/Caddy/Whatever 设置来实现这一点 - 下面是 Nginx 的全局通配符访问示例。

location ~* \.(eot|ttf|woff|woff2|jpg|jpeg|gif|png|wav|mp3|mp4|mov|ogg|webv)$ {
    add_header Access-Control-Allow-Origin *;
}

授权

大多数端点都需要授权,这可以通过 Laravel passport 实现

有一个 seeder 必须运行才能进行授权

用户模型来自 Auth 软件包。

Seeder

为了播种内容和库

php artisan db:seed --class="\EscolaLms\HeadlessH5P\Database\Seeders\ContentLibrarySeeder"

您可以使用内置的种子命令,通过

  • php artisan h5p:seed 仅添加库
  • php artisan h5p:seed --addContent 添加包含库的内容

路线图

在本地运行测试

运行 ./test.sh