delkano/f3-jsonapi

一些有助于快速使用 FatFreeFramework 实现 JsonAPI 服务器的类

dev-master 2021-10-21 10:41 UTC

This package is auto-updated.

Last update: 2024-09-21 17:01:19 UTC


README

简介

我不得不写几个 JsonAPI 服务器,在某一点上,我开始将所有通用代码提炼成单独的类。这还是一个正在进行中的工作,并将持续一段时间,因为这是我的第一个库,也是我之前提到的通用类的重写;但它应该是可以运行的。

使用

依赖

f3-jsonapi 是一个 FatFreeFramework 插件。这些说明假设您正在使用 FatFreeFramework 项目。

此外,您需要安装和配置 F3-Cortex

安装

您可以使用以下命令在项目中安装 f3-jsonapi:

composer require delkano/f3-jsonapi

配置

然后列出所有模型到您的 config.ini 中

[models]
<plural>=<Model>

在命名空间 Model 中定义每个模型,使用 F3-Cortex 进行此操作,最后在 $f3->run() 之前调用您的 index.php 中的设置方法

JsonApi::setup();

我在 F3-Cortex 模型定义中添加了一个用于 'has-many' 关系的属性。如果您添加

'async' => true,

关系将不会内联详细展示。这对于非常大的关系很有用。

您不需要定义任何控制器,因为每个模型默认都分配了 readable 控制器。但是,如果您想自定义行为,您可以扩展提供的任何基础控制器(JsonApiReadableRestricted)并重写它们的方法。

为了便于编辑,提供了一些钩子

processInput
postSave
processSingleQuery
processListQuery
orderRelationship

我将为它们编写一些文档,但现在您可以通过查看 JsonApi 控制器代码来了解它们的工作原理。

当前状态

  • 基础控制器工作正常
  • 可读控制器,用于那些只能由创建者编辑但公开阅读的对象
  • 受限控制器,用于那些只能由创建者访问的对象
  • 后备控制器,默认分配给任何没有明确控制器的模型,默认为可读
  • 设置已完成
  • 需要测试

虽然 F3-JsonAPI 被视为开发中,但我已经用它来使用了一段时间,它是稳定且可工作的。