php - 是否可以从不同的类或文件加载 Swagger 注释?
问题描述
我有以下简单的PHP方法,如下所示
/**
*
* (swagger annotation to be called from a different class)
*
*/
public function getApiCall()
{
//Do something
}
而且我需要在方法上方的注释中包含长 Swagger 文档,那么
是否可以在不同的类中编写注释?并用类似的东西在这里调用它
/**
*
*call('App\Http\Controllers\testAnnotation');
*/
主要目的是拥有一个干净的类,其中没有太多的文档和注释行。
解决方案
加载“来自不同类的注释”并不是很有意义。在带注释的代码中读取注释,这就是它们的全部目的。
但是如果你想保持配置和代码分离,你不必使用Swagger -Php来生成你的 swagger 配置文件。
该包只是一种swagger.json
从代码注释生成文件的便捷方式。
但是,如果您不想一开始就使用注释,并保持您的类免受无关配置的影响(我个人对此表示赞赏),那么...不要使用 Swagger-Php 并在您的类之外构建您自己的配置文件.
如果您觉得比手动编写 JSON 更舒服,您甚至可以用 YAML 编写它。例如::
openapi: 3.0.0
info:
title: 'Search API'
version: 1.0.0
servers:
- url:
description: Current host server
- url: https:your-server.com
description: Prod server
paths:
/foo:
post:
summary: 'Creates a new foo'
description: 'Builds a new Foo and makes it available to Bar'
requestBody:
description: 'Foo '
required: true
content:
application/json:
schema:
$ref: '#/components/schemas/Foo'
responses:
'201':
description: Foo created
'202':
description: Foo queued, it will be eventually created.
components:
schemas:
Foo:
type: object
required:
- name
- size
properties:
name:
type: string
size:
type: integer
一旦转换为 JSON(有很多库可以做到这一点,或者您甚至可以使用像这样的免费服务),您可以直接将生成的 JSON 提供给 swagger。
例如,上面的 YAML 解析为这个 JSON 文件。您可以通过前往Swagger 演示实例并通过“探索”位置栏中的 JSON URL 轻松对其进行测试,您将得到如下内容:
最后,它并不比使用注解多多少工作(如果有更多工作的话),并且您可以保持实体类不受配置问题的影响。
推荐阅读
- ionic3 - 如何在离子刷新器 Ionic 3 中使用自定义 SVG 作为 refreshSpinner
- android - 如何修复 UnsafeProtectedBroadcastReceiver?
- java - 在Java中,我无法在方法中的return语句之后添加代码
- unity3d - 如何在统一 3d 中完成动画后更改图像
- angular - 在打字稿中添加小时列表
- python-3.x - 是否需要卸载 python 3.7 才能运行 python 2.7?
- ruby-on-rails - 向 Rails FormObject 添加通用(未绑定到键或字段)错误消息
- javascript - 访问由 Object.create 创建的对象中的父(超级)方法
- sql - SQL - 所有列的不同记录
- javascript - 获取 Youtube 视频格式