Skip to content

数据接口前后端协同注意事项

数据接口文档

  • 日常业务模块在开发的过程中,涉及到数据接口的改动(新增、修改、删除),必须要求后端同事提供相关的数据接口文档(数据接口文档需要在数据接口登记表中进行登记)。
  • 数据接口文档应该对数据接口的改动进行详细的说明,同时数据接口文档中应该对请求方式,入参、返回值进行详细的说明,并提供入参、返回值等示例(需要包含字段类型,字段数据长度限制、字段业务含义、字段取值方式等说明)。

数据接口请求方式

  • 在没有特殊情况下,所有的数据接口请求方式应该规范为POST,可以避免入参、返回值加密传输的一些问题。

数据接口必传参数

  • 日常业务模块在开发当中,对于一些数据接口参数的设计,需要考虑年度、区划、单位作为必传参数,避免因为缺少这些参数导致业务出现漏洞,在与后端同事协作开发的过程中,应该提醒后端开发同事。
vue
<template>
</template>
<script>
  import { mapGetters } from 'vuex';
  import { GET_LOGIN_INFO, GET_CONTEXT_AGY_ACB } from '@/store/login';
  import fetch from '@/config/fetch';

  export default {
    methods: {
      /**
     * 获取数据
     */
      getData() {
        let { agyCode } = this.GET_CONTEXT_AGY_ACB;
        let { fiscal, mofDivCode } = this.GET_LOGIN_INFO;
        fetch
          .post('xxxxxxx', {
            fiscal, // TODO: 年度参数,必传参数
            mofDivCode, // TODO: 区划参数,必传参数
            agyCode, // TODO: 单位参数,必传参数
          })
          .then(({ data }) => {
            console.log(data);
          })
          .catch((err) => {
            console.error(err);
            this.$message({
              type: 'error',
              message: err.msg,
            });
          });
      },
    },
    computed: {
      ...mapGetters([GET_LOGIN_INFO, GET_CONTEXT_AGY_ACB]),
    },
  };
</script>

数据接口入参避免使用大字段

  • 数据接口在设计入参时,应该避免使用大字段(如入参传单据schema、报表表样数据等),因为入参传大字段会造成数据接口加解密异常、服务器带宽异常占用过大、服务器内存异常占用过大等一些列问题

数据接口鉴权问题

  • 标准产品,新增完数据接口之后,需要提醒后端开发同事将相关的数据接口记录到接口鉴权表