灵活度 API 结构

Apigility API structure

我想用 Apigility 替换我们内部的 REST 系统并有一些问题。

  1. 我们有大量分层结构的资源(大约 1500 个)。 Apigility 适用于平面资源列表。当有大约 100 - 200 个资源时,这是可以的。数量大时可能很难处理。有没有办法将结构分解为子模块或类别或类似的?

  2. 由于 Apigility 将所有配置存储在文本文件中,因此大量字段和文档可能会导致性能问题 and/or 内存占用。有没有办法将 fields/configuration 拆分成单独的文件(或其他文件)?

  3. 部分资源用于PDF文件下载。是否可以使用 GET 方法提供 oAuth2 访问令牌? Link 文件是用 A 标签创建的,不能使用 HTTP headers。

1. 是的,您可以使用多个模块及其自己的 module.config.php 文件,就像您通常在 ZF2 应用程序中所做的那样。拆分成几个配置文件也很有用。例如,您可以创建: metadata.config.phpcontroller.config.phpinputfilter.config.php

然后在 module.php Module::getConfig 方法中合并配置文件。 这可以帮助您组织起来。

2 overwrite/extend Apigility 模块的默认配置很容易。根据您希望进行定制的程度,您还可以构建自己的工厂和映射器,您可以在其中尝试最大程度地减少配置文件中的代码重复。在 ZF2 生产环境中正常缓存时,您的配置文件不应对性能产生太大影响。

3. 是的,您可以在 url 中使用访问令牌:

api/v1/documents/1?access_token=1234567890abcdefghijklmnopqrstuvqxyzABCD