delphi中的函数传参如何传枚举参数_我是这样使用SpringBoot(API传参)

spring boot 传参

spring boot 中的Controller或者RestController接收参数的方法是一样的。这章目标是对几种常用的传参都写个例子。

创建package: com.biboheart.demos.api,这个包里放置API接口的RestController

在com.biboheart.demos.api包中创建一个class: ParamController。这章的示例都在这个类中进行。

63aa751d96f640d1921974a4c74c6b0c

PathVariable

路径中包含参数,这种情况适合与传递一个不能为空值的参数。比如有些应用中,查询某个企业的数据,必须包含企业的编号,就可以在地址里接收这个编号。

在ParamController中增加一个函数PathParam

package com.biboheart.demos.api;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class ParamController { @RequestMapping(value = "/demo/param/path/{sn}") public String pathParam(@PathVariable String sn) { return "接收到参数:" + sn; }}
b5a325c943c24879854d189ec6e3b764

路径中的参数通过{sn}接收值。

使用名称接收参数

使用名称接收参数比较直观,我用得比较多。不用注解。跟客户端传的参数同名就可以接收到。如下例子中的reqParam

package com.biboheart.demos.api;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class ParamController { .... @RequestMapping(value = "/demo/param/req") public String reqParam(String name, Integer age) { return "接收到参数{name:" + name + ";age:" + age + "}"; }}
7a60ccaa5c444479a17dc976fd915dc0

也可以用get传参

39e9658debe44598af9110c73af0d9da

使用对象接收参数

上面用参数名称接收值,只要与请求时的名称一致就能接收到参数值。如果需要传递的参数比较多的时候,就不适合一个一个参数写在函数里了,那样很不方便,也容易出错。可以把这些参数写到一个对象里接收。如下例子

创建一个package: com.biboheart.demos.model,创建一个类Person

53c8f289d2384cb1851680c9dda6701f
package com.biboheart.demos.model;import lombok.Data;import lombok.ToString;@Data@ToStringpublic class Person { private String name; private Integer age; private Integer sex; private String addres;}

用Person对象接收参数

package com.biboheart.demos.api;import com.biboheart.demos.model.Person;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class ParamController { ... @RequestMapping(value = "/demo/param/model") public String modelParam(Person person) { return "接收到参数:" + person.toString(); }}

虽然这样的方式也能接收get传参,但是因为需要传的参数多了,用get显得不太方便。这里就不测试GET方式请求了。

3345e49dd6ad458dbf6e681f18463010

RequestBody

有的时候,需要接收JSON传参。比如某些服务的调用需要开发一个回调函数接收对方的回调并获得参数值为结果,对方回调回来的值是JSON格式的值,这时候就需要接收JSON传参数了。用RequestBody可以接收到JSON传值。

package com.biboheart.demos.api;import com.biboheart.demos.model.Person;import org.springframework.web.bind.annotation.PathVariable;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class ParamController { ... @RequestMapping(value = "/demo/param/json") public String jsonParam(@RequestBody Person person) { return "接收到参数:" + person.toString(); }}

需要JSON请求才能正确接到值

f962d1a2add242d78da78ad6dd88d39c

设置请求头

d2c228adcbc7446a8b86d52d39fd9b42
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值