场景
前端设备层出不穷,不同的前端设备与后端进行通信,RESTful API是目前比较成熟的一套互联网应用程序的API设计理论
API的身份认证
API接口开发
01.传统API的CRUD接口的开发,
restful风格CRUD接口
02.AI的开发模式通常包含了以下步骤:
数据清洗;模型训练;参数调优;API上线。
驱动方式
交互驱动
行为驱动
网络协议
URL
URL由三部分组成:资源类型、存放资源的主机域名、资源文件名。
也可认为由4部分组成:协议、主机、端口、路径
HTTP协议
Request 请求端 请求报文
request line: get/post/put/delete URL + version
Header: 键值对 Host cookie user-agent accept-encoding
Body
Response 响应报文
Status-line
Header content-type
Body
其中 Status-line
1XX Informational(信息性状态码)接收的请求正在处理
2XX Success(成功状态码)请求正常处理完毕
3XX Redirection(重定向状态码)需要进行附加操作以完成请求
4XX Client Error(客户端错误状态码) 服务器无法处理请求5XXServer Error(服务器错误状态码)服务器处理请求出错
通信数据转发程序:
除客户端和服务器以外,还有一些用于通信数据转发的应用程序,例如代理、网关和隧道。它们可以配合服务器工作
Spring 注解
@RestController :用于标注控制层组件(如struts中的action), @ResponseBody 和 @Controller 的合集
@ResponseBody
@RequestParam 即允许用户不输入变量时,使用默认值
@PathVariable : @PathVaribale 获取url中的数据
@RequestBody 这个一般处理的是在ajax请求中声明contentType:
“application/json; charset=utf-8”时候。也就是json数据或者xml
Content-Type: application/json;charset=utf-8
@RequestParam 这个一般就是在ajax里面没有声明contentType的时候,
为默认的 application/x-www-form-urlencode 格式时,用这个
enctype=application/x-www-form-urlencoded。 enctype指定了HTTP请求的Content-Type。
@RequestMapping
@GetMapping 组合注解, 是@RequestMapping(method = RequestMethod.GET)的缩写
@PostMapping
Spring4.3中引入了{
@GetMapping @PostMapping
@PutMapping @PatchMapping
@DeleteMapping
即@GetMapping用于处理请求方法的GET类型,
@PostMapping用于处理请求方法的POST类型等。
Spring
Controller 如何接收以 GET 方式传递过来的参数
一、参数直接在路径中
二、参数跟在 ? 号后面
1,获取参数的基本方法 参数没有传递的情况
2,使用 map 来接收参数
3,接收一个数组
使用对象来接收参数
如何接收通过 POST 方式传递过来的参数。
一、接收 Form 表单数据
1,获取参数的基本方法 参数没有传递的情况
2,使用 map 来接收参数
@RequestParam Map<String,Object> params
3,接收一个数组
@RequestParam("name")
4,使用对象来接收参数 以及使用对象接收时指定参数前缀
@ModelAttribute("u") User user
二、接收字符串文本数据
Text 文本,我们可以通过 HttpServletRequest 获取输入流从而读取文本内容
HttpServletRequest request
三、接收 JSON 数据
以使用 @Requestbody 接收参数,将数据转换 Map
@RequestBody User user
@RequestBody Map params
@RequestBody List<User> users
接口测试PostMan
1,raw方式使用的是纯字符串的数du据上传方式,所以在POST之前,
可能需要手工的把一些JSON格式的数回据转换成字答符串的(加两单引号)
2.Form-data的方式就是key-value的提交,数据其实是分割的.
模仿页面中dao form 表单的格式,来填充要提交的数据的
参考:
SpringBoot - 获取POST请求参数详解(附样例:表单数据、json、数组、对象) https://www.cnblogs.com/netcorner/p/13544443.html
Web API 设计 https://docs.microsoft.com/zh-cn/azure/architecture/best-practices/api-design