delkano / f3-jsonapi
一些有助于快速使用 FatFreeFramework 实现 JsonAPI 服务器的类
dev-master
2021-10-21 10:41 UTC
Requires
- bcosca/fatfree: ^3.6
- ikkez/f3-cortex: 1.*
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 控制器。但是,如果您想自定义行为,您可以扩展提供的任何基础控制器(JsonApi、Readable 和 Restricted)并重写它们的方法。
为了便于编辑,提供了一些钩子
processInput
postSave
processSingleQuery
processListQuery
orderRelationship
我将为它们编写一些文档,但现在您可以通过查看 JsonApi 控制器代码来了解它们的工作原理。
当前状态
- 基础控制器工作正常
- 可读控制器,用于那些只能由创建者编辑但公开阅读的对象
- 受限控制器,用于那些只能由创建者访问的对象
- 后备控制器,默认分配给任何没有明确控制器的模型,默认为可读
- 设置已完成
- 需要测试
虽然 F3-JsonAPI 被视为开发中,但我已经用它来使用了一段时间,它是稳定且可工作的。