spring boot web api

网友投稿 921 2022-12-02

spring boot web api

spring boot web api

spring boot内置了tomcat,可以很方便的对外提供Web Api。有时实在是很方便,比方说,我写个后台程序,可以处理一些比较耗时的工作。而这个功能,将会开放给WEB前端调用,由WEB前端触发。

2019.08.04 这跟是否内置tomcat应该没有关系吧

用spring boot会很方便。但如果是用C#来弄,后台是后台,还要另外写个WEB程序来提供接口,后台与WEB接口如何交互?鉴于是两个不同的进程,估计需要用到消息中间件。或者是后台这里要支持RPC,远程调用。

言归正传。spring boot项目里,如何提供一个WEB API?

代码

@RestController@RequestMapping(value="/api")public class ApiController { //提交的参数json @RequestMapping(value = "/authors/json/{id}", method = RequestMethod.POST) public String test(@PathVariable int id, @RequestParam("t") int type,@RequestBody Author auth){ return String.format("id:%1$d,type:%2$d,name:%3$s;params type:json",id,type,auth.getName()); } //提交的参数为键值对 @RequestMapping(value = "/authors/kv/{id}", method = RequestMethod.POST) public String test2(@PathVariable int id, @RequestParam("t") int type,Author auth){ return String.format("id:%1$d,type:%2$d,name:%3$s;params type:key-value",id,type,auth.getName()); } }

这段代码虽然短小,但蕴含的信息却比较丰富。

1、这是一个POST方式的API,GET的比较简单,不必多说。

2、参数通过3种方式传递: 1)路径,对应​​​{id}​​

@PathVariable int

2)querystring,对应 ​​?t=​​

@RequestParam("t") int

3)提交,对应 ​​Author auth​​

@RequestBody

@RequestBody 注解表明提交参数形式为json,对应的contentType为​​application/json​​

如果不加则为默认的键值对,对应的contentType为​​application/x-url1 = "data1 = "name=chenqu&desc=foolish";var ctype1 = "application/x-url2 = "data2 = JSON.stringify({ "name":"chenqu", "desc":"foolish"});var ctype2 = "application/json; charset=utf-8";$.ajax({ url: url2, data: data2, contentType: ctype2, //dataType: "json", type: "POST", success: function (data) { alert(data); }, error: function (rq, status, thrown) { alert(rq.responseText + "," + status + ": " + thrown); }});

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:投稿的事情
下一篇:rands函数的用法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~