laminas-api-tools / api-tools-documentation
Laminas API Tools API 文档模块
Requires
- php: ~8.0.0 || ~8.1.0 || ~8.2.0
- laminas-api-tools/api-tools-configuration: ^1.6
- laminas-api-tools/api-tools-content-negotiation: ^1.8
- laminas-api-tools/api-tools-provider: ^1.6
- laminas/laminas-inputfilter: ^2.13
- laminas/laminas-modulemanager: ^2.11
- laminas/laminas-mvc: ^3.3
- laminas/laminas-servicemanager: ^3.8
- laminas/laminas-view: ^2.13
- michelf/php-markdown: ^1.5
Requires (Dev)
- laminas/laminas-coding-standard: ~2.3.0
- laminas/laminas-db: ^2.13.4
- laminas/laminas-stdlib: ^3.6.4
- phpunit/phpunit: ^9.5.10
- psalm/plugin-phpunit: ^0.16.0
- vimeo/psalm: ^4.7
- webmozart/assert: ^1.10
Conflicts
README
🇷🇺 俄罗斯公民
我们,Laminas 的参与者,来自不同的国家。我们中许多人既有在俄罗斯的朋友、亲戚和同事,也有在乌克兰的。我们中的一些人出生在俄罗斯。我们中的一些人现在住在俄罗斯。我们中的一些人的祖父母在二战中与法西斯作战。在这里,没有人支持法西斯主义。
我们中的一员有一位乌克兰亲戚,她和儿子一起从家里逃了出来。由于前方路上发生轰炸,火车延误了。我们有朋友躲在防空洞里。在空袭之后,我们焦急地等待他们的消息,空袭不分青红皂白地袭击医院、学校、幼儿园和住宅。我们不是从任何媒体上得知这些的。这是我们亲眼目睹的。
您足够信任我们使用我们的程序,我们请求您再次信任我们。我们需要您的帮助。走出家门,抗议这场毫无意义的战争。停止杀戮。说“停止战争!”
🇺🇸 致俄罗斯公民
我们在 Laminas 的人来自世界各地。我们中许多人既在俄罗斯也有在乌克兰的朋友、家人和同事。我们中的一些人出生在俄罗斯。我们中的一些人现在住在俄罗斯。我们中的一些人的祖父母在二战中与纳粹作战。在这里,没有人支持法西斯主义。
我们的团队成员中有一位乌克兰亲戚,她和儿子一起逃离了家园。由于前方路上发生轰炸,火车延误了。我们有朋友躲在防空洞里。在空袭之后,我们焦急地等待他们的消息,空袭不分青红皂白地袭击医院、学校、幼儿园和住宅。我们不是从任何媒体上得知这些的。这是我们亲眼目睹的。
您足够信任我们使用我们的软件。我们要求您信任我们说出真相。我们需要您的帮助。走出家门,抗议这场毫无必要的战争。停止杀戮。说“停止战争!”
介绍
此 Laminas 模块可以与 Laminas API Tools 一起使用,以便
- 提供所有捕获的文档信息的对象模型,包括
- 所有可用的 API。
- 每个 API 中可用的所有 服务。
- 每个服务可用的所有 操作。
- 每个操作所需的/预期的
Accept
和Content-Type
请求头,以及预期的响应头Content-Type
,对于每个可用的操作。 - 每个服务配置的所有字段。
- 提供可配置的 MVC 端点以返回文档。
- 默认情况下,文档将以 HTML 或序列化 JSON 的形式交付。
- 最终用户可以通过内容协商配置替代/附加格式。
此模块通过提供连接到的端点(/api-tools/documentation[/:api[-v:version][/:service]]
)来完成上述所有用例,使用内容协商提供 HTML 和 JSON 表示。
要求
请参阅 composer.json 文件。
安装
运行以下 composer
命令
$ composer require laminas-api-tools/api-tools-documentation
或者,手动将以下内容添加到您的 composer.json
中的 require
部分
"require": { "laminas-api-tools/api-tools-documentation": "^1.2-dev" }
然后运行 composer update
确保模块已安装。
最后,将模块名称添加到项目 config/application.config.php
中的 modules
键下
return [ /* ... */ 'modules' => [ /* ... */ 'Laminas\ApiTools\Documentation', ], /* ... */ ];
laminas-component-installer
如果您使用laminas-component-installer,该插件会为您安装api-tools-documentation作为模块。
配置
用户配置
此模块不使用任何用户配置。
系统配置
以下配置由模块定义,以确保在Laminas MVC应用程序中运行。
namespace Laminas\ApiTools\Documentation; use Laminas\ServiceManager\Factory\InvokableFactory; use Laminas\View\Model\ViewModel; return [ 'router' => [ 'routes' => [ 'api-tools' => [ 'child_routes' => [ 'documentation' => [ 'type' => 'segment', 'options' => [ 'route' => '/documentation[/:api[-v:version][/:service]]', 'constraints' => [ 'api' => '[a-zA-Z][a-zA-Z0-9_.]+', ], 'defaults' => [ 'controller' => Controller::class, 'action' => 'show', ], ], ], ], ], ], ], 'service_manager' => [ 'factories' => [ ApiFactory::class => Factory\ApiFactoryFactory::class, ], ], 'controllers' => [ 'factories' => [ Controller::class => ControllerFactory::class, ], ], 'api-tools-content-negotiation' => [ 'controllers' => [ Controller::class => 'Documentation', ], 'accept_whitelist' => [ Controller::class => [ 0 => 'application/vnd.swagger+json', 1 => 'application/json', ], ], 'selectors' => [ 'Documentation' => [ ViewModel::class => [ 'text/html', 'application/xhtml+xml', ], JsonModel::class => [ 'application/json', ], ], ], ], 'view_helpers' => [ 'aliases' => [ 'agacceptheaders' => View\AgAcceptHeaders::class, 'agAcceptHeaders' => View\AgAcceptHeaders::class, 'agcontenttypeheaders' => View\AgContentTypeHeaders::class, 'agContentTypeHeaders' => View\AgContentTypeHeaders::class, 'agservicepath' => View\AgServicePath::class, 'agServicePath' => View\AgServicePath::class, 'agstatuscodes' => View\AgStatusCodes::class, 'agStatusCodes' => View\AgStatusCodes::class, 'agtransformdescription' => View\AgTransformDescription::class, 'agTransformDescription' => View\AgTransformDescription::class, ], 'factories' => [ View\AgAcceptHeaders::class => InvokableFactory::class, View\AgContentTypeHeaders::class => InvokableFactory::class, View\AgServicePath::class => InvokableFactory::class, View\AgStatusCodes::class => InvokableFactory::class, View\AgTransformDescription::class => InvokableFactory::class, ], ], 'view_manager' => [ 'template_path_stack' => [ __DIR__ . '/../view', ], ], ];
Laminas事件
此模块没有事件或监听器。
Laminas服务
视图助手
以下视图助手列表有助于在视图脚本中将API文档模型呈现出来。
Laminas\ApiTools\Documentation\View\AgAcceptHeaders
(又名agAcceptHeaders
)用于创建HTML转义后的Accept
头列表。Laminas\ApiTools\Documentation\View\AgContentTypeHeaders
(又名agContentTypeHeaders
)用于创建HTML转义后的Content-Type
头列表。Laminas\ApiTools\Documentation\View\AgServicePath
(又名agServicePath
)用于创建服务路径的配置路由的HTML视图表示。Laminas\ApiTools\Documentation\View\AgStatusCodes
(又名agStatusCodes
)用于创建状态码及其消息的转义列表。Laminas\ApiTools\Documentation\View\AgTransformDescription
(又名agTransformDescription
)用于将书面描述转换为Markdown。
工厂
Laminas\ApiTools\Documentation\ApiFactory
ApiFactory
服务能够生成所需API文档的对象图表示。此对象图将由以下类型组成
Laminas\ApiTools\Documentation\Api
:API的根节点。Laminas\ApiTools\Documentation\Services
:API中的服务数组(服务可以是REST或RPC风格的服务之一)。Laminas\ApiTools\Documentation\Operations
:服务中的操作数组。Laminas\ApiTools\Documentation\Fields
:服务的字段数组。