美文网首页
模板数据接口设计(移动端操作接口)

模板数据接口设计(移动端操作接口)

作者: 西城丶 | 来源:发表于2020-05-29 16:55 被阅读0次

接口分析

移动端大致需要几个接口

  • 获取模板列表接口
  • 根据模板表名获取模板字段接口
  • 填写完数据需要保存模板数据接口(修改是同一个接口)
  • 获取文件预览路径和模板填充的数据内容
  • 获取已创建的文件列表

接口实现

  1. 获取模板列表接口 GET /mobile/templateList

请求参数:无

响应内容:

{
    "success": true, 
    "message": null, 
    "code": 200, 
    "timestamp": 1590649811153, 
    "data": [
        {
            "items": [
                {
                    // 部分字段
                    "fileName": "doc_order_correction.pdf", 
                    "id": "2", 
                    "isDefault": "1", 
                    // 模板名称
                    "name": "XXX",
                    // 表名 下一步用到
                    "tableName": "doc_order_correction", 
                    // 版本号
                    "version": "1.0.0"
                }
            ], 
            // 分类名称
            "classifyName": "XXX"
        }
    ], 
    "i18n": null
}
  1. 根据表名获取模板表单字段信息 GET /mobile/tableFields/{tableName}

请求参数:

字段 类型 是否必传 描述
tableName String Yes 模板表名

响应内容:

{
    "success": true, 
    "message": null, 
    "code": 200, 
    "timestamp": 1590649811153, 
    "data": {
        // 模板名称
        "name": "XXX", 
        // 模板版本号
        "version": "1.0.2", 
        // 模板内容,按照字段分类进行归类
        "content": [
            {
                // 分类的表单字段
                "fields": [
                    {
                        // 是否必输1必输
                        "isRequired": "1", 
                        // 字段名称
                        "fieldName": "title_dept_name", 
                         // 字段备注,如果是下拉框这里会有下拉框的json对象值
                        "fieldRemark": "", 
                        // 客户端没用
                        "remark": "", 
                        // 客户端没用
                        "multiLineField": "", 
                        // 客户端没用
                        "version": "1.0.2", 
                        // 模板表名
                        "tableName": "doc_live_transcript", 
                        "itemId": "cfcbc7d2-b5cf-482c-a956-089100976e91", 
                        // 字段长度
                        "fieldSize": "20", 
                        // 默认取值字段名 与下面的是否默认取值搭配使用
                        "defaultTakeName": "deptName", 
                        // 提示输入
                        "hintName": "请输入/选择XXXX", 
                        // 是否默认取值,1默认取值,和上面的默认取值字段配合使用
                        "isDefaultTake": "1", 
                        // 模板名称
                        "name": "XXX", 
                         // 字段前置的字段名称 就是label值
                        "preName": "XXX管理局", 
                        "id": "80afc285-3577-4b25-b1e3-49807af36949", 
                        // 字段类型
                        "fieldType": "1", 
                         // 字段归属分类
                        "classifyName": "XXX"
                    }
                ], 
                // 字段归属分类
                "classifyName": "XXX"
            }
        ]
    }, 
    "i18n": null
}

来解释下这个表单字段的一些字段的用处

  • isRequired是否必输和fieldSize字段长度

这两个字段,主要是给移动端做校验用,后端也会使用这两个字段进行验证。我们数据表是根据pdf表单的设置的限制字符来设计字段长度的对吧,如果这里不对这个字段进行限制的话,就经常可能超过了数据库的字段长度限制,而且pdf的字段太长了,也会被截断或者换行显示,这样视觉效果也不好,所以需要对每个字段长度的必输和长度进行校验。

  • isDefaultTake是否默认取值和defaultTakeName默认取值字段名

我们在填写pdf表单的时候,会有这样一个需求:有几个字段是我想默认填写的,比如说部门名称,这个是需要根据填写人的部门自动填充进去。所以这两个字段就是这个用处,如果这个字段是默认取值的,移动端就可以直接取到默认取值的key,从本地的一下缓存对象(或者其他对象)里面取到值填充进去。

  • fieldType字段类型

    既然是表单,他就会不同的字段类型,比如说文本域,下拉框。所以这个字段主要是用来做这个标识的作用,当然,还不止这些作用,我还进行了一些扩展,以满足需求。

    根据移动端的需求,目前设计的几种字段类型:

    1: EditText 编辑框
    2: TimePick 时间选择框 年月日时分
    3: DatePick 日期选择框 年月日
    4: SpinnerPick 下拉选择框

    5: inputText 文本域
    6: Signature 签名域
    7: ItemDynamic 动态列表

    8: AskAnswer 问答

    • 编辑框/时间选择框/日期选择框/文本域 就不用讲了

    • 下拉选择框需要搭配fieldRemark字段使用,这个字段存储了下拉框的key/value的json值,移动端直接解析这个字段构造下拉框

    • 签名域

      既然的pdf表单,那么可能有些字段是手写需要签名的字段,和移动端约定好,签名字段的值采用Base64编码,后端解析Base64编码值进行图片填充

    • 动态列表

      先来看下这个pdf表单:

    image-20200529144934892.png

    这个pdf表单,需要填写的是动态行,移动端可以增加一行并且填写每一行的数据,这个类型就是针对这种类型的表单。

    • 问答

      这个主要是针对特殊情况,在问答模式下,问和答需要切割,问结束之后,答要另起一行,后面是针对这种类型进行特殊处理。

  1. 保存表单 POST /mobile/saveOrUpdate

请求参数:

字段 类型 是否必传 描述
tableName String Yes 模板表名
data Object Yes 表单数据

响应内容:

{
    "success": true, 
    "message": null, 
    "code": 200, 
    "timestamp": 1590649811153, 
    "data": {
        // 生成的pdf文件id,后续根据这个id获取文件以及文件数据内容
        "id":"XXX"
    }
    "i18n": null
}
  1. 获取pdf文件预览路径 GET /getDocPreview/{id}

请求参数:

字段 类型 是否必传 描述
id String Yes 上面接口返回的文件id

响应内容:

{
    "success": true, 
    "message": null, 
    "code": 200, 
    "timestamp": 1590649811153, 
    "data": "文件服务器的文件地址XXX"
    "i18n": null
}
  1. 获取pdf表单内容 GET /mobile/detail/{id}

应移动端要求,接口和第二个接口返回数据一样,只是hintName字段设置为表单内容值

请求参数:

字段 类型 是否必传 描述
id String Yes 上面接口返回的文件id

响应内容:

见第二个接口

  1. 获取已创建的文件列表

这个就读取中间表数据,不阐述。

结语

移动端和后端接口差不多就这些,有些实现细节没有写,后续补充,有写的不对的欢迎指正。

下篇

代码实现细节

相关文章

  • 模板数据接口设计(移动端操作接口)

    接口分析 移动端大致需要几个接口 获取模板列表接口 根据模板表名获取模板字段接口 填写完数据需要保存模板数据接口(...

  • 接口测试策略

    接口设计检查(接口本身属性) 通过接口设计文档(服务器接口文档及客户端数据约束文档)进行交互数据的有效性检查: a...

  • 编程网络处理规范

    接口定义 接口返回json数据时的标准接口模板

  • 对Request.parameter中参数进行添加或修改

    在讲解这个问题之前,先来聊聊我程序的设计,为移动端提供接口的同学们都知道,在接口通讯的过程中,数据是需要加密传输的...

  • 「产品前端架构」接口设计

    接口设计 用户使用 Web 客户端访问 Web 系统,系统在收到请求后执行操作(收集数据模型,选择数据经行组装),...

  • PHP获取移动端数据POST传值

    在码接口时候遇到移动端明明使用post方式提交的数据,可是后台接口中用post,get ,request都获取不到...

  • 浅谈项目开发的相关内容

    1.项目组成结构概括 产品+后台+移动端+UI产品:负责项目总体设计,产品需求、产品逻辑流程后台:负责处理数据接口...

  • 每周工作总结

    这周完成的 1 完善裤兜FM相关数据接口和接口文档,配合web端对接并发布第一个原型测试版本。 2 配合移动端制定...

  • eg:LoadRunner处理json数据

    一、返回json提取 =====例子==== 接口业务:移动端登陆接口 接口内容 http://IP:8080/g...

  • 数据仓库3、设计数据仓库

    建造数据仓库包括——与操作型系统接口的设计 + 数据仓库本身的设计。 1、操作型数据。 难点1 集成——由于不同...

网友评论

      本文标题:模板数据接口设计(移动端操作接口)

      本文链接:https://www.haomeiwen.com/subject/odkfzhtx.html