Api-Platform 3.2.5设置openapi: false仍显示操作,需额外配置?
Api-Platform 3.2.5 隐藏操作仍显示在文档中的解决办法
- 确认是否彻底覆盖默认操作:Api-Platform默认会为资源生成标准CRUD操作,如果你的
operations数组是追加而非替换默认操作,原Delete操作可能仍存在。可在ApiResource注解中添加defaults: ['crud' => false]禁用默认CRUD,只保留自定义操作,示例:
#[ApiResource( defaults: ['crud' => false], operations: [ new Delete( controller: NotFoundAction::class, openapi: false, read: false, output: false ) ] )]
- 替换
openapi: false为openapi_context: ['hidden' => true]:部分版本中直接设置openapi: false可能不生效,改用OpenAPI上下文配置强制隐藏:
new Delete( controller: NotFoundAction::class, openapi_context: ['hidden' => true], read: false, output: false )
- 彻底清理缓存:执行更彻底的缓存清理命令,避免残留缓存:
# 清除所有缓存并禁用自动预热 php bin/console cache:clear --env=prod --no-warmup # 手动删除缓存目录(若上述命令无效) rm -rf var/cache/* # 重新预热缓存 php bin/console cache:warmup --env=prod
- 检查自定义OpenAPI扩展:若项目中存在自定义的OpenApiFactory或扩展类,可能会强制渲染某些操作,需排查这些代码是否有强制显示操作的逻辑。
内容的提问来源于stack exchange,提问作者endo.anaconda
相关产品推荐
相关产品推荐

