
不是swagger的问题,各种配置也都对,问题就在于,参数名!“Authorization” 这个header是用来存认证信息的,因为这次做的也正式认证接口,认证信息从这个header中获取。
结果正常的写法就无法获取这个header了。
swagger是有通用的或者叫做全局的添加认证信息的设置的,就比如你的接口都需要检查token就可以给所以的接口设置统一的token。
具体的开启如下:
同时还引出了另一个问题,如果要从header中获取这个参数,Authorization。不加注解,swagger也会自动给添加一个参数。参数名正是Authorization,不能用,但是不传还提示必填。
swagger 文档在日常开发中,用得比较多,往往我们都是手动配置,swagger3.0之后,直接就上了一个swagger-starter,用起来更方便了。swagger3.0发生了很多变化,比如包名、注解、访问路径等都有所变化。具体自己去体会了,我就是不多说了,直接开干。
swagger3.0项目地址: https://github.com/springfox/springfox
1.一个springboot项目
2.swagger3.0依赖
1.在springboot项目pom中添加入swagger3.0依赖
2.在启动类上加新版注解@EnableOpenApi
3.添加一个接口测试controller:
4.直接启动搞定: 注意 访问路径 http://localhost:8080/swagger-ui/index.html ,和2不一样了。
再一运行:
ok了,就搞定了。
当使用https后界面上的services地址不会随着你的项目域名变https时自动变https,如下图:
当然,这个bug官方会在3.0.1版本中修复, https://github.com/springfox/springfox/issues/3468 ,目前也是可以解决这个问题的,自定义swagger拦截器,借鉴了 https://github.com/springfox/springfox/issues/3531 ,
此时再重新启动项目:
就可以正常了,当然这只是我自己处理的一个思路,具体实现可以各抒己见。
最后的最后:demo地址: https://gitee.com/zzj1992/swagger3-demo.git
@Api:用在类上,说明类的作用
tags:“标签,可以在UI界面上看到的注解”
value:url的路径值,在类上使用的路由,如果类上没有配置,此注解无效
position:如果配置多个Api 想改变显示的顺序位置
protocols:协议
hidden:配置为true 将在文档中隐藏
produces:返回的文件的MIME类型,例如application/json,application/xml
consumes:需要的文件的MIME类型,
authorizations:认证
@ApiSort:排序
value:int值
@ApiOperation:用在方法上,用来给API增加方法说明。
value=“说明方法的用途、作用”
notes=“方法的备注说明”
tags:如果设置这个值、value的值会被覆盖
description:对api资源的描述
basePath
position
protocols
hidden
response:返回的对象,例如(Bean.class)
responseContainer:返回的内容,有效的 “List”, “Set” or “Map”.,其他无效
httpMethod:
code :默认为200
extensions:扩展属性
produces:返回的文件的MIME类型,例如application/json,application/xml
consumes:需要的文件的MIME类型,
ignoreJsonView:忽略的json
@ApiImplicitParam:用来注解来给方法入参增加说明。
paramType:参数存在的位置,该参数不能乱写,否者测试时会调用失败
header:请求参数放置于Request Header,使用@RequestHeader获取
query:请求参数放置于请求地址,使用@RequestParam获取
path:(用于restful接口)–>请求参数的获取:@PathVariable
body:@RequestBody
form:表单提交
name:参数名
dataType:参数类型
required:参数是否必须传(bool类型)
value:说明参数的意思
defaultValue:参数的默认值
allowableValues:允许的值
allowMultiple:是否允许多选
allowEmptyValue:允许为空?
readOnly:只读?
**@ApiImplicitParams **: 用在方法上包含一组参数说明。
ApiImplicitParam[] value():包含ApiImplicitParam
@ApiResponses:用于表示一组响应
@ApiResponse:用在@ApiResponses中,一般用于表达一个错误的响应信息
code:数字,例如400
message:信息,例如"请求参数没填好"
response:响应类
@ResponseHeader:响应头设置
name:响应名称
description:描述信息
response:响应类
responseContainer:响应内容
@ApiModel:一般用在实体类,描述一个Model的信息(一般用在请求参数无法使用@ApiImplicitParam注解进行描述的时候
@ApiModelProperty:描述一个model的属性
ApiParam :使用在参数上(和ApiImplicitParam使用其一即可)
name属性名称
value属性值
defaultValue默认属性值
allowableValues可以不配置
required是否属性必填
access
allowMultiple默认为false
hidden隐藏该属性
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)