使用 Swagger 注解

    通过使用注解描述接口契约,用户可以利用ServiceComb的Swagger契约生成功能自动生成符合要求的契约文件,而无须手工编写和修改契约,能够有效提高开发效率。

    关于Swagger注解的含义,可以在Swagger注解文档中找到官方说明。您可以对照该官方文档与本说明来了解如何在ServiceComb框架下使用注解指定Swagger契约的各项属性。

    在ServiceComb中,Swagger注解不是必须使用的。当用户使用SpringMVC和JAX-RS的注解来标注微服务方法时,ServiceComb可以根据这些注解的值推断出各微服务方法的契约信息。

    @SwaggerDefinition

    作用于类级别,用于定义一个Swagger资源中的信息。

    属性类型说明
    info.titlestring契约文件标题
    info.descriptionstring描述信息
    info.versionstring契约版本号
    info.termsOfServicestring服务条款
    info.contactstring联系信息,包含name、email、url属性
    info.licensestring许可证信息,包含name、url属性
    info.extensionsstring扩展信息
    consumesstring接收的请求格式
    producesstring返回的应答格式
    schemesSwaggerDefinition.Scheme可选值有HTTP/HTTPS/WS/WSS/DEFAULT
    tags@TagTag定义,@Tag包含name、description、externalDocs三个属性
    externalDocs@externalDocs外部说明文档链接,包含value、url两个属性

    @ApiImplicitParam

    作用于方法级别,用于说明Swagger文档中operation的参数的属性。

    属性类型说明
    namestring参数名称
    valuestring参数说明
    requiredboolean是否是必填参数
    dataTypestring参数数据类型
    paramTypestring参数位置,有效的可选值为path/query/body/header/form
    allowableValuesstring参数的有效值范围
    allowEmptyValueboolean是否允许空值
    allowMultipleboolean是否允许多个值(若为true,则可以将参数作为数组)
    collectionFormatstring以何种格式指定参数数组,当前ServiceComb支持的值为csv/multi
    defaultValuestring参数默认值
    examplestring一个非body参数的示例值
    formatstring允许用户自定义数据格式,详情参见Swagger官方文档

    @ApiResponse

    用于描述返回消息的HTTP状态码所表达的含义。通常@ApiOperation可以表示一个正常情况返回消息的HTTP状态码,其他情形下的HTTP状态码由本注解描述。根据Swagger官方文档的描述,本注解不应该直接用于方法级别,而应该被包含在@ApiResponses中。

    属性类型说明
    codeint返回消息的HTTP状态码
    messagestring返回值的说明信息
    responseClass<?>返回值的类型
    responseContainerstring返回值的包装容器,可选值为List/Set/Map
    responseHeaders@ResponseHeader描述一组返回消息的HTTP头,ServiceComb支持的@ResponseHeader的属性有namedescriptionresponseresponseContainer