我找不到一种方法来排序我的PHP注释中定义的API路径与zircote/swagger-php,我在OpenAPI规范和swagger-php文档中都没有找到任何东西来实现这一点。这个相关的GitHub线程没有多大帮助。
open-api.json
文件由以下命令生成:bin/openapi -o doc/open-api.json --format json src
.
ReDoc按照在"path "中定义的顺序显示路径。变量在open-api.json
,但路径的顺序在生成的文件是相当随机的(+他们并不总是匹配文件中的php注释的顺序)。
点击查看图片:路径随机排序
我尝试使用ReDocsortOperationsAlphabetically
选项(似乎不支持zircote/swager -php),并设置一个operationId
到我的路径。
我还尝试添加使用SortComponents处理器,但未能加载它。
作曲家。json:PHP 7.4.33Symfony 3.4zircote/swagger-php 3.3.3
包。json (webpack)"redoc"^ 2.0.0-rc.8-1"
谢谢你的帮助:)
我刚刚检查了最新的主机和SortComponents
处理器确实为我工作。您必须小心确保处理器类对自动加载器可见。从Examples
文件夹,情况并非如此。
同样,示例处理器对组件进行排序;对于路径,你可能想要一些这样的变化:
<?php declare(strict_types=1);
namespace OpenApiProcessors;
use OpenApiAnalysis;
/**
* Sorts paths so they appear in alphabetical order in the generated specs.
*/
class SortPaths
{
public function __invoke(Analysis $analysis)
{
if (is_iterable($analysis->openapi->paths)) {
usort($analysis->openapi->paths, function ($a, $b) {
return strcmp($a->path, $b->path);
});
}
}
}