设计时需要考虑的问题(webAPI)
1、根据api接口访问路径定义好controller和action。
2、记录操作日志。包含接口入参、出参、异常以及重要的节点数据(数据库返回、第三方接口返回、重要的私有变量值)
3、入参合法性检查。非空检查。需要校验身份证、邮箱、手机号、网址等值。
4、定义好接口的返回状态和消息。建议0表示成功,非0表示失败,且不同的状态值必须区分好。
可包括数据库操作、第三方接口调用、入参校验、程序异常、成功等分类。
5、选择合适的HTTP操作,get还是post需要根据场景进行选择。
6、参数传递方式确定,get还是post还是request请求头。
7、定义好接口出入参实体。对于返回值建议包含status(状态)、msg(消息)、data(数据)等字段,没返回数据时,data取值null。
8、考虑返回数据是否需要排序、分页等操作。
9、对于返回列表的数据需要考虑好没数据时是返回错误还是返回空集合,但是接口返回成功。
10、避免由于判断分支过多导致if-else嵌套过深,在非法的条件下进行return。
11、多层嵌套if-else时,保持判断逻辑的一致性,所有条件都判真,或者都判非。
12、确定客户端cookie管理方案。是签名Cookie还是令牌Cookie。
13、确定是实现同步接口还是异步接口。
14、确认图片文件的传输方式。是base64还是文件流还是multipart。
15、引入异常重试机制。比如调用第三方接扣、数据库调用等。
16、确定异常的处理方式。api不要抛出异常,内部方法可以抛出异常,在api层捕获处理。
17、活用ActionFilterAttribute进行日志记录等操作。
18、接口返回字段均为小写或者大写。避免命名混乱导致的BUG。
19、统一接口出入参中时间格式
最新文章
- 【poj2478】 Farey Sequence
- django笔记-模型数据模板呈现过程记录(多对多关系)
- html状态码与缓存学习
- java transient简介
- “菜单”(menubar)和“工具栏”(toolbars)
- python关键字
- OpenWrt刷机
- Cocos2d-x发展---更改父的颜色、透明度的子节点上
- Kudu vs HBase
- VMware虚拟机开机自启动
- c# 获取文件本身的哈希值
- python-day76--django-中间件
- Day16作业及默写
- Technical Information ARM-related JTAG / SWD / SWV / ETM Target Interfaces
- [Windows Azure] Getting Started with Windows Azure SQL Data Sync
- phpmyadmin配置文件权限错误,不应任何用户都能修改
- linux下一些常用系统命令
- AspNetPager控件的最基本用法
- capacity <;<;= 1
- IOS手机使用Fiddler抓获HTTPS报文方法
热门文章
- 读《深入理解Elasticsearch》点滴-multi_match
- linux查看cpu核数和内存指令
- Spring Boot 监听 Activemq 中的特定 topic ,并将数据通过 RabbitMq 发布出去
- mysql root密码忘记
- centos7 安装 docker
- Vim升华之树形目录插件NERDTree安装图解(ubuntu)
- Nginx简单介绍以及linux下使用Nginx进行负载均衡的搭建
- 使用真机导致Androidstudio打印不出log
- .net mvc web api Autofac依赖注入框架-戈多编程
- wamp server mysql数据库中事件不执行的解决办法