causal/路由

将 HTTP/REST 请求路由到您的控制器/动作的服务。

安装次数: 19,878

依赖项: 0

建议者: 0

安全性: 0

星级: 19

关注者: 5

分支: 6

开放问题: 7

类型:typo3-cms-extension

0.5.0 2017-12-04 10:35 UTC

This package is auto-updated.

Last update: 2024-09-10 17:50:55 UTC


README

将 HTTP/REST 请求路由到您的控制器/动作的服务。

值得了解:该路由受到 Flow 的路由器工作方式启发(了解更多)。

它做什么?

此扩展允许您根据基于 YAML 的路由配置路由请求。

https://#/routing/extension-key/my-demo/1234
https://#/routing/extension-key/my-demo/1234.json
https://#/routing/extension-key/my-demo/99

在本例中,123499 将映射到某些方法参数(如果需要,则转换为域对象)并且 json 将将响应格式设置为 json

示例路由

路由存储为 Configuration/Routes.yaml(或 Configuration/Routes.yml)并看起来像这样

-
  name: 'Demo action with a parameter in a given format (JSON, ...)'
  uriPattern: 'my-demo/{value}.{@format}'
  defaults:
    '@package':    'MyVendor.ExtensionKey'
    '@plugin':     'API'
    '@controller': 'Dummy'
    '@action':     'demo'
-
  name: 'Demo action with a parameter'
  uriPattern: 'my-demo/{value}'
  defaults:
    '@package':    'MyVendor.ExtensionKey'
    '@plugin':     'API'
    '@controller': 'Dummy'
    '@action':     'demo'

路由的名称作为响应中的附加头信息发送

Additional HTTP header "X-Causal-Routing-Route"

安装

  1. 使用 Packagist 安装扩展

    composer req causal/routing
    
  2. 转到扩展管理器并激活扩展 routing

  3. 向您的 .htaccess 添加重写规则

    RewriteRule ^routing/(.*)$ /index.php?eID=routing&route=$1 [QSA,L]
    

    或者,如果您正在使用 Nginx

    rewrite ^/routing/(.*)$ /index.php?eID=routing&route=$1 last;
    

这将使此扩展用于处理以 routing/ 开头的请求。

提示:如果您需要支持本地化(&L=<some-language-uid>),则应将上述建议路由更改为包括您网站的主页 uid(&id=<some-uid>)。这是因为本地化模式和默认语言可能在复杂环境中不同,因此无法推断。

手册 中了解更多。

与 TYPO3 v8 兼容性

更改 78002 以来,您需要调整您的 TypoScript,以便不需要 cHash

plugin.tx_<yourext> {
    features {
        requireCHashArgumentForActionArguments = 0
    }
}