# 接口标准化



## 接口是什么？

API，全称是 ApplicationProgramming Interface，即应用程序编程接口，我们日常中习惯简称为“接口”。接口是一些预先定义的函数，目的是提供应用程序与开发人员基于某软件或硬件的以访问一组例程的能力，而又无需访问源码，或理解内部工作机制的细节。

## 接口有什么用？

在平时的开发过程中，前后端经常会进行数据交互，那么在前后端分离的项目中，前端就不用管后台的工作，用 api 调取数据即可。


| 名词      | 含义        | 
| ------------- |:-------------:|
| 前端     | Web前端, APP端, 桌面端等一切属于用户界面的这一层 | 
| 后端     | 即服务器端, 指一切属于用户界面之下的这一层      |
| 前后端接口 | 前端与后端进行数据交互的统称, 也叫做数据接口, 属于一种远程调用, 一般指前端通过HTTP(ajax)请求获取到的数据或者执行的某项操作. 为确保前后端(工程师)的协作沟通, 一般由前端和后端一起来定义接口的规范, 规范的内容一般包含接口的地址, 接口的输入参数和输出的数据格式(结构), 最终由后端来实现这些规范, 为前端提供符合规范的接口    |


## 标准化

看了上面的两个问题明确了接口的定义，为什么要标准化那，我一个功能一个接口不可以吗，一个接口一种数据结构不可以吗？，答案当然可以， 只要你不嫌麻烦，你可以说服使用你接口的人接受你的接口，你的开发周期允许你有足够的时间，
我们可以对比一下，如果把接口标准化了我们会节省多少时间以及工作量。

* 各种对象的增删改查，可以统一定制数据结构、接口结构，即使是不同的对象，也只是内部的属性名有区别，整体的数据机构、接口结构的统一，访问地址，入参，返回值。
* 标准化不需要我们重发开发，设计框架的目的即使以最少的代码完成你要实现的操作，我们设计的框架就是你把实体类与 controller 接口类即可，实现描述型开发。
* 为后端开发减少了代码量，减少了开发时间，也为前端减少了各种接口的适配，增加了代码的复用性，节省开发时间。
* 接口标准化，大大的节省了前后端沟通的成本，无论怎么调整或增加需求都可以快速完成前后端的对接。

![架构图 idea](./img/system-interface_001.jpg)


