🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
REST之前的重要协议SOAP rest(简单理解风格、约束、设计理念) rest之前是SOAP:SOAP Web API采用RPC风格,它采用面向功能的架构,所以我们在设计SOAP Web API的时候首相考虑的是应高提供怎样的功能(或者操作)。RESTful Web API采用面向资源的架构,所以在设计之初首先需要考虑的是有哪些资源可供操作 SOAP通常以xml描述数据而rest提倡json描述数据(xml和json都是通用格式的与语言无关,可以在不同的语言中互通) RESTFul API基于REST 的api设计理念  (轻,通常用json描述数据,无状态) 基于资源,增删改查只是对于资源状态的改变 使用http动词(GET:查询、POST:创建、PUT:更新、DELETE:删除)来操作资源   查询get:/movie/:mid     不符合rest规范的:/getmovie/:mid >tp5.0支持`RESTFul` 对每个http请求的响应结果都指明一个特别的状态码(200、201、202、400、401、403、404、500、...) 如:403:当A用户请求了B用户的id号那么判断越权返回403 错误码:自定义的错误id号 统一描述错误:错误码、错误信息、当前url 使用Token令牌来授权和验证身份(这里不用cookie) 版本控制 测试与生产环境分开:api/xxx.com  dev.api.xxx.com url语义要明确,最好可以望文知义 最好有一份比较标准的文档 参考豆瓣开放API 和github开发者API 不要盲目照搬rest标准哦 接口安全、接口认证、接口性能、接口控流、接口缓存设计(缓存过期策略、缓存命中、缓存优化) 可能问题:   接口请求地址和参数暴露   重要接口返回的数据明文暴露   app登录态请求的数据安全性问题   代码层的数据安全问题  解决办法:   基本参数放入header   每次http请求都携带 授权码sign   授权码sign 有效性(客户端携带时间与数据一起生成sign,访问服务端时解密sign的时间)   授权码sign唯一性保证(存入mysql、文件、redis)   请求参数、返回数据 按照安全性适当加密 (加密方式:md5 AES(推荐)  RSA)   access\_token