@ApiParam @RequestParam @PathVariable 用法

Posted 小田吃饺子

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@ApiParam @RequestParam @PathVariable 用法相关的知识,希望对你有一定的参考价值。

文章来源:https://www.cnblogs.com/hello-tl/p/9204279.html 

1.@ApiParam ,是注解api的参数 ,也就是用于swagger提供开发者文档 ,文档中生成的注释内容 。

2.@RequestParam , 是获取前端传递给后端的参数,可以是get方式,也可以是post方式。其中如果前端传递的参数和后端你接受的参数起的名字字段是一致的可以省略不写,也可以直接写@RequestParam String title,如果不一致一定要完整写,

3.@PathVariable , 获取url后面参数,进行参数绑定

package com.web.controller;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;

@RestController
@Api(value="apiTest", description="apiTest 控制器")
@RequestMapping("/apiTest")
public class ApiTestController {
    // @ApiOperation    用于方法上
    // @ApiParam        用于方法,参数,字段说明,表示对参数的添加元数据(说明或是否必填等)

   // 1.@ApiParam   是注解api的参数 ,也就是用于swagger提供开发者文档 ,文档中生成的注释内容 。
    // 接受 POST 或者 GET 参数
    // @ApiOperation(value = "api说明", notes = "接口发布说明", httpMethod = "请求方式 [ POST | GET ]")
    @ApiOperation(value = "测试ApiOperation" , notes = "测试ApiOperation", httpMethod = "GET")
    // @RequestMapping(value = "URL地址" , method = "传输方式 [ RequestMethod.GET | RequestMethod.POST] ")
    @RequestMapping(value = "/ApiTest1" , method = RequestMethod.GET)
    public String ApiTest1(
            // @ApiParam ( name = "参数名称" , value = "api描述" , required = 是否必传[ true(必传) 接收的值 | false(非传) 默认等于 null ] ) 类型 参数绑定
            @ApiParam(name = "ApiParam",value="测试ApiParam",required = true) String ApiParam){
        /**
         * 访问 localhost:8080/apiTest/ApiTest1
         * 页面打印是空的并没有报错说 缺少ApiParam参数 这是因为 ---- ApiParam 里面 required 参数是配合 swagger-ui 用的
         *
         * 下伙子不要冲动---这是后可以访问一下 localhost:8080/apiTest/ApiTest2 试试
         */
        return ApiParam;
    }

   // 2.@RequestParam,是获取前端传递给后端的参数,可以是get方式,也可以是post方式。其中如果前端传递的参数和后端你接受的参数起的名字字段是一致的可以省略不写,也可以直接写@RequestParam String title,如果不一致一定要完整写
    // 接受 POST 或者 GET 参数
    @ApiOperation(value = "测试ApiOperation" , notes = "测试ApiOperation", httpMethod = "GET")
    @RequestMapping(value = "/ApiTest2" , method = RequestMethod.GET)
    public String ApiTest2(
            // @RequestParam(name = "参数名称",required = "是否必传[ true(必传) | false(非传) ] 默认 true", defaultValue = "默认值") 类型 参数绑定
            @ApiParam(name = "ApiParam",value="测试ApiParam",required = true)
            @RequestParam(name = "ApiParam",required = true) String ApiParam){
        /**
         * @RequestParam(name = "ApiParam",required = false, defaultValue = "ApiParam 默认值") String ApiParam
         * 访问 localhost:8080/apiTest/ApiTest2
         *      会返回 ApiParam 默认值
         *
         * @RequestParam(name = "ApiParam",required = true) String ApiParam
         * 访问 localhost:8080/apiTest/ApiTest2
         *      会报错 字符串参数 ApiParam 不存在
         *
         * 访问 localhost:8080/apiTest/ApiTest2?ApiParam=测试地址
         *      会返回 测试地址
         */
        return ApiParam;
    }

    // 3.获取url后面参数,进行参数绑定
    @ApiOperation(value = "测试ApiOperation" , notes = "测试ApiOperation", httpMethod = "GET")
    @RequestMapping(value = "/ApiTest3/{ApiParam}" , method = RequestMethod.GET)
    public String ApiTest3(
            @ApiParam(name = "ApiParam",value="测试ApiParam",required = true) @PathVariable String ApiParam){
        /**
         * 访问 localhost:8080/apiTest/ApiTest3
         *      出返回 404
         *
         * 访问 localhost:8080/apiTest/ApiTest3/测试地址
         *      出返回 测试地址
         */
        return ApiParam;
    }
}

文章来源:https://www.cnblogs.com/hello-tl/p/9204279.html 

以上是关于@ApiParam @RequestParam @PathVariable 用法的主要内容,如果未能解决你的问题,请参考以下文章

上传人员照片

为 ApiParam 和 ApiQuery 定义 DTO

Swagger必需的参数在缺少时返回500,而不是404

Swagger常见注解@API、@ApiOperation、@ApiParam等

JAVA基础知识之InputStreamReader流 和 将本地文件通过前端上传到服务器上

@RequestParam注解参数