rnd-cosoft / api-tools-documentation
Laminas API Tools API 文档模块
Requires
- php: ~8.1.0 || ~8.2.0 || ~8.3.0
- laminas/laminas-inputfilter: ^2.13
- laminas/laminas-modulemanager: ^2.14
- laminas/laminas-mvc: ^3.3
- laminas/laminas-servicemanager: ^3.8
- laminas/laminas-view: ^2.14
- michelf/php-markdown: ^1.5
- rnd-cosoft/api-tools-configuration: ^1.6
- rnd-cosoft/api-tools-content-negotiation: ^1.8
- rnd-cosoft/api-tools-provider: ^1.6
Requires (Dev)
- laminas/laminas-coding-standard: ~2.3.0
- laminas/laminas-db: ^2.13.4
- laminas/laminas-stdlib: ^3.16.1
- phpunit/phpunit: ^9.5.10
- psalm/plugin-phpunit: ^0.16.0
- vimeo/psalm: ^4.7
- webmozart/assert: ^1.10
Conflicts
Replaces
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
:服务的字段数组。