入门(Getting started)
原文:Getting started 翻译:小虾米(QQ:509129)
入门(Getting started)
swagger-php 的目的是使用phpdoc注释来生成一个swagger.json。
输出(To output):
写(Write):
注意,教条注释支持数组,但是使用 {
和 }
而不是 [
和 ]
。
虽然教条也支持对象,但也使用 {
和 }
,要求将属性名用 “
包围。
不要写(DON'T write):
但可以使用与属性同名的注释,例如 @SWG\Info 为 info:
这增加了验证,因此当您误拼属性或忘记了所需的属性时,它将触发php警告。例如,如果你写 titel="My first ...
swagger-php 会产生一个 "Unexpected field "titel" for @SWG\Info(), expecting "title", ..."的notice。
使用变量注释
使用变量注释(Using variables in annotations)
你可以在教条注解中使用常数。
当您使用CLI时,您需要使用 --bootstrap
选项将php文件包含在其中。
注释的位置(Annotation placement)
您不应该将所有注释放在一个大的 @SWG\Swagger()
注释块中,而是将它们分散到整个代码库中。swagger-php 将扫描您的项目并将所有注释合并到一个 @SWG\Swagger
注释中。
最大好处是swagger-php提供文档贴近实现api的代码。
对象和数组(Arrays and Objects)
将同一类型的多个注释放置在一个对象数组中。对于对象,属性的约定是使用与注释相同的字段名:response 在 @SWG\Response
,property 在 @SWG\Property
,等等
生成(Generates):
Swagger-PHP 检测基于上下文的值(Swagger-PHP detects values based on context)
Swagger-PHP着眼于减少重复的注释上下文。
结果(results in):
如果你写成(As if you'd written):
不要重复自己(Don't Repeat Yourself):
在请求或响应中,多个请求有一些重叠是很常见的。该规范通过使用 $ref S
解决了大多数问题
结果(results in):
它本身什么都不做但是现在你可以用json的路径 #/definitions/product_id
来引用这篇文章
要了解更多关于refs的技巧,请浏览 using-refs 示例。
Vendor 扩展(Vendor extensions)
该规范允许自定义属性(custom properties),只要它们以 “x-” 开头,所有的大小写php注释都有一个 x
属性,将展开为 “x-” 属性。
结果(results in):
例如,Amazon API网关(Amazon API Gateway)就利用了这些。
关于Swagger的更多信息(More information about Swagger)
要查看哪个输出映射到哪个注释签查看swagger-explained,这也包含了swagger 规范的片段
Last updated