getpop/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"成为可能。

.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-1PSR-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通用公共许可证v2(或更新版本)。请参阅许可证文件获取更多信息。