热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

swagger系列二:swagger语法

在swagger-php的Example下有示例写法。拿过来分析记录。swagger官方注解:https:bfanger.nlswagger-explained#schemaObj

swagger-phpExample下有示例写法。拿过来分析记录。

swagger官方注解:https://bfanger.nl/swagger-explained/#schemaObject go

1. 文档标题部分

/**
* @SWG\Swagger(
* schemes={"http"},
* host="api.com",
* basePath="/v1",
* @SWG\Info(
* version="1.0.0",
* title="API接口文档",
* description="测试swagger文档项目",
* @SWG\Contact(
* name="wxp",
* email="panxxxx@163.com"
* )
* ),
* @SWG\ExternalDocumentation(
* description="wxp",
* url="./"
* )
* )
*/

效果图:

《swagger系列二:swagger 语法》

  • schemes: 接口所支持的协议 (可以填多种协议)
  • host:主机名或ip。
  • basePath:提供API的基本路径,它是相对于host。必须以一个前导斜杠(/)开始. Base URL 是 host + basePath 拼接出来的
  • Info : 文档描述。

    • version :版本号。
    • title :标题。
    • description : 描述信息。
  • ExternalDocumentation”:外部文档链接。

    • description:描述
    • url :跳转链接
  • Contact :联系开发者,发送邮件。

    • name : 开发者姓名
    • email :邮件地址。

2. tag标签部分,用于文档分类

/**
* @SWG\Tag(
* name="pet",
* description="你的宠物信息",
* @SWG\ExternalDocumentation(
* description="查看更多",
* url=""
* )
* )
* @SWG\Tag(
* name="store",
* description="查看宠物店订单"
* )
* @SWG\Tag(
* name="user",
* description="用户操作记录",
* @SWG\ExternalDocumentation(
* description="关于宠物店",
* url="http://swagger.io"
* )
* )
*/

《swagger系列二:swagger 语法》

  • name : 名称(功能模块)
  • description : 描述

3. 接口注释写法

/**
* @SWG\Get(
* path="/pet/{petId}",
* summary="通过ID查询宠物",
* description="返回宠物信息",
* operatiOnId="getPetById",
* tags={"pet"},
* cOnsumes={"application/json", "application/xml"},
* produces={"application/xml", "application/json"},
* @SWG\Parameter(
* description="ID of pet to return",
* in="path",
* name="petId",
* required=true,
* type="integer",
* format="int64"
* ),
* @SWG\Response(
* respOnse=200,
* description="successful operation",
* @SWG\Schema(ref="#/definitions/Pet")
* ),
* @SWG\Response(
* respOnse="400",
* description="Invalid ID supplied"
* ),
* @SWG\Response(
* respOnse="404",
* description="Pet not found"
* ),
* security={
* {"api_key": {}}
* }
* )
*/

  • Get:请求的 HTTP 方法,支持GET/POST/PUT/DELETE 等 HTTP 标准请求方法
  • path:请求的路径
  • summary:接口简介,不能超过120个字符
  • tags:接口标签,可以是多个
  • description:接口描述,支持 Markdown 语法
  • operationId:操作的 ID,全局唯一的接口标识
  • consumes:接口接收的MIME类型,如 application/json
  • produces:接口返回的MIME类型,如 application/json
  • parameters:参数列表

    • description:参数描述
    • in:参数从何处来. 必填. 取值仅限: “query”, “header”, “path”, “formData”, “body”
    • name:参数名.
    • required:参数是否必须. 通过路径传参(in 取值 “path”)时必须为 true.
    • type=参数类型. 取值仅限: “string”, “number”, “integer”, “boolean”, “array”, “file”
    • format:参数格式,如”int64″
  • response: 描叙了来自API操作的单个响应

    • response:返回码
    • description=描述
    • @SWGSchema(ref=”#/definitions/Pet”): 引用definitions/Pet定义的对象

4. 定义对象

5.type 为array的写法

/**
* @SWG\Schema(
* property="name",
* type="array",
* @SWG\Items(
* required={"username"},
* @SWG\Property(
* property="firstName",
* type="string",
* description="firstName"
* ),
* @SWG\Property(
* property="ID",
* type="integer",
* description="user_id"
* ),
* @SWG\Property(
* property="username",
* type="string",
* description="username"
* )
* )
* )
*/

推荐阅读
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 在过去,我曾使用过自建MySQL服务器中的MyISAM和InnoDB存储引擎(也曾尝试过Memory引擎)。今年初,我开始转向阿里云的关系型数据库服务,并深入研究了其高效的压缩存储引擎TokuDB。TokuDB在数据压缩和处理大规模数据集方面表现出色,显著提升了存储效率和查询性能。通过实际应用,我发现TokuDB不仅能够有效减少存储成本,还能显著提高数据处理速度,特别适用于高并发和大数据量的场景。 ... [详细]
  • 本文作为“实现简易版Spring系列”的第五篇,继前文深入探讨了Spring框架的核心技术之一——控制反转(IoC)之后,将重点转向另一个关键技术——面向切面编程(AOP)。对于使用Spring框架进行开发的开发者来说,AOP是一个不可或缺的概念。了解AOP的背景及其基本原理,对于掌握这一技术至关重要。本文将通过具体示例,详细解析AOP的实现机制,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 在 CentOS 7 上部署和配置 RabbitMQ 消息队列系统时,首先需要安装 Erlang,因为 RabbitMQ 是基于 Erlang 语言开发的。具体步骤包括:安装必要的依赖项,下载 Erlang 源码包(可能需要一些时间,请耐心等待),解压源码包,解决可能出现的错误,验证安装是否成功,并将 Erlang 添加到环境变量中。接下来,下载 RabbitMQ 的 tar.xz 压缩包,并进行解压和安装。确保每一步都按顺序执行,以保证系统的稳定性和可靠性。 ... [详细]
  • 注:写博客或者项目的README文档经常用到markdown语法,所以markdown的语法做了一个总结,本文是基于【markdown】基 ... [详细]
  • JUC(三):深入解析AQS
    本文详细介绍了Java并发工具包中的核心类AQS(AbstractQueuedSynchronizer),包括其基本概念、数据结构、源码分析及核心方法的实现。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 在处理遗留数据库的映射时,反向工程是一个重要的初始步骤。由于实体模式已经在数据库系统中存在,Hibernate 提供了自动化工具来简化这一过程,帮助开发人员快速生成持久化类和映射文件。通过反向工程,可以显著提高开发效率并减少手动配置的错误。此外,该工具还支持对现有数据库结构进行分析,自动生成符合 Hibernate 规范的配置文件,从而加速项目的启动和开发周期。 ... [详细]
  • 在尝试对从复杂 XSD 生成的类进行序列化时,遇到了 `NullReferenceException` 错误。尽管已经花费了数小时进行调试和搜索相关资料,但仍然无法找到问题的根源。希望社区能够提供一些指导和建议,帮助解决这一难题。 ... [详细]
  • PHP编程学习心得与技巧分享
    strpos($str1,$str2[$offset]);str1中搜索str2,返回第一次出现的位置,头是0;echo`ipconfig`;等效于echoshell_exec(ipconfig);echo@(30);&& ... [详细]
  • MySQL:不仅仅是数据库那么简单
    MySQL不仅是一款高效、可靠的数据库管理系统,它还具备丰富的功能和扩展性,支持多种存储引擎,适用于各种应用场景。从简单的网站开发到复杂的企业级应用,MySQL都能提供强大的数据管理和优化能力,满足不同用户的需求。其开源特性也促进了社区的活跃发展,为技术进步提供了持续动力。 ... [详细]
  • 在Spring框架中,基于Schema的异常通知与环绕通知的实现方法具有重要的实践价值。首先,对于异常通知,需要创建一个实现ThrowsAdvice接口的通知类。尽管ThrowsAdvice接口本身不包含任何方法,但开发者需自定义方法来处理异常情况。此外,环绕通知则通过实现MethodInterceptor接口来实现,允许在方法调用前后执行特定逻辑,从而增强功能或进行必要的控制。这两种通知机制的结合使用,能够有效提升应用程序的健壮性和灵活性。 ... [详细]
author-avatar
要么永远要么消失_324
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有