pop-api/api-rest

在 PoP API 中创建 REST 端点

5.0.0 2024-09-07 03:33 UTC

README

它允许添加 REST 端点以检索任何基于 URL 资源的数据。它基于 PoP API 包。

安装

通过 Composer

composer require pop-api/api-rest

开发

源代码托管在 GatoGraphQL monorepo 中,位于 API/packages/api-rest

启用美观的永久链接

Apache

确保 Apache 服务器已安装并启用了 proxyproxy_http 模块。这启用了以下重写规则中的配置 "P""[L,P,QSA]"

.htaccess 中添加以下代码以支持资源页面 URL 结尾的 API 端点 /api/rest/

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

# Rewrite from /some-url/api/rest/ to /some-url/?scheme=api&datastructure=rest
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)/api/rest/?$ /$1/?scheme=api&datastructure=rest [L,P,QSA]
</IfModule>

Nginx

在 Nginx 配置的 server 条目中添加以下代码以启用 API 端点 /api/rest/。请注意,以下解析器是 Docker 的;请根据您的环境替换此值。

location ~ ^(.*)/api/rest/?$ {
    # Resolver for Docker. Change to your own
    resolver 127.0.0.11 [::1];
    # If adding $args and it's empty, it does a redirect.
    # Then, add $args only if not empty
    set $redirect_uri "$scheme://$server_name$1/?scheme=api&datastructure=rest";
    if ($args) {
        set $redirect_uri "$scheme://$server_name$1/?$args&scheme=api&datastructure=rest";
    }
    proxy_pass $redirect_uri;
}

用法

初始化组件

\PoP\Root\App::stockAndInitializeModuleClasses([([
    \PoPAPI\RESTAPI\Module::class,
]);

/api/rest/ 添加到 URL 以获取预定义字段。

PHP 版本

需求

  • 开发需要 PHP 8.1+
  • 生产需要 PHP 7.2+

支持的 PHP 功能

检查 GatoGraphQL/GatoGraphQL 中的支持 PHP 功能列表

预览降级到 PHP 7.2

通过 Rector (dry-run 模式)

composer preview-code-downgrade

标准

PSR-1, PSR-4PSR-12

要检查编码标准,请运行 PHP CodeSniffer

composer check-style

要自动修复问题,请运行

composer fix-style

变更日志

有关最近更改的更多信息,请参阅 CHANGELOG

测试

要执行 PHPUnit,请运行

composer test

静态分析

要执行 PHPStan,请运行

composer analyse

报告问题

要报告错误或请求新功能,请在本包的 GatoGraphQL monorepo 问题跟踪器 上操作。

贡献

我们欢迎在本包上对 GatoGraphQL monorepo (本包源代码托管处) 的贡献。

请参阅 CONTRIBUTINGCODE_OF_CONDUCT 以获取详细信息。

安全

如果您发现任何与安全相关的问题,请通过电子邮件发送至 leo@getpop.org,而不是使用问题跟踪器。

致谢

许可协议

GNU通用公共许可证第2版(或更新版)。有关更多信息,请参阅许可文件