28 回复
错误倒是没有,就是输入参数那点不开,看了下你发的链接,好像参数注解输入跟我这也是一样的?
@ApiParam(required = false, name = "a", value = "第一个参数")String a,
@ApiParam(required = false, name = "b", value = "第二个参数")String b
F12没报错,在页面对应的url下,点击Example value没反应,前端懂得确实不多,能给个带参数注解的例子不?
额,那么神奇? 我下午找时间试试
谢谢大神,试了不少网上的注解方法,输入那都点不进去
https://online.swagger.io/validator/debug?url=https://nutz.cn/swagger/swagger.json
{"messages":["attribute info is missing"],"schemaValidationMessages":[{"level":"error","domain":"validation","keyword":"required","message":"object has missing required properties ([\"info\"])","schema":{"loadingURI":"#","pointer":""},"instance":{"pointer":""}}]}
貌似少了点什么,待我查查
嗯,试了下面这种注解方式,好像也不行
@ApiImplicitParams({
@ApiImplicitParam(name = "a", value = "a", required = true, dataType = "String"),
@ApiImplicitParam(name = "b", value = "b", required = true, dataType = "String")
})
@POST
@ApiOperation(value = "回显接口", notes = "发我一个字符串,原样回复一个字符串")
@ApiImplicitParams({@ApiImplicitParam(name = "text", paramType="form", value = "想发啥就发啥", dataType="string", required = true)})
@At
@Ok("raw")
public String echo(@Param("text") String text) {
return text;
}
查到原因了,paraType = "form"只支持POST,改成paraType = "query"就都支持了,有个问题,那个路径的@Path为啥找不到依赖的包呢??
嗯,找不到依赖的,包是从你之前给通过maven直接导入的
这个查询的url是http://localhost:8080/raiis/ping?a=1&b=2
swagger UI页面上的url是 http://localhost:8080/raiis/ping/query?a=1&b=2
有没办法,让swagger的url不去读取query
@Api(value = "raiis/ping")
@IocBean
@At("/ping")
public class SwaggerTestModule extends BaseModule {
@GET
@Ok("raw")
@At("")
@ApiOperation(value = "接口说明", notes = "接口发布说明")
@ApiImplicitParams(
{ @ApiImplicitParam(name = "a", paramType="query", value = "第一个", dataType="string", required = true),
@ApiImplicitParam(name = "b", paramType="query", value = "第二个", dataType="string", required = true)
})
public Object query(@Param("a")String a, @Param("b")String b) {
return new NutMap("ok", true).setv("a", a).setv("b", b);
}
}
ApiOperation好像可以设置
确实可以,请问下,swagger注解后台只能接收一个对象?
@At("")
@PUT
@AdaptBy(type = JsonAdaptor.class)
@ApiOperation(value = "更新目的地语言信息", notes = "更新一个目的地语言信息", nickname = "destLang", tags = "destLang", response = ResponseCode.class)
@ApiImplicitParams({
@ApiImplicitParam(name = "newValue", paramType="body", value = "新的目的地语言信息", dataType="com.panport.raiis.fids.bean.DestLang", required = true),
@ApiImplicitParam(name = "oldValue", paramType="body", value = "旧的目的地语言信息", dataType="com.panport.raiis.fids.bean.DestLang", required = true)
})
public Object update(@Param("newValue")DestLang newValue, @Param("oldValue")DestLang oldValue) throws SQLException
{
.......
}
我在页面提交 newValue跟oldValue对象值,后台只能接收到一个
swagger的注解不会影响nutz的行为
是不会影响nutz,我是说在swagger ui上,测试输入两个对象值,后台只能接收到一个
如果是自定义的VO作为参数,需要一个个写@ApiImplicitParam吗?