项目实训 : 输入法构思

功能描述

我们的输入法需要做到古文字的typing。古文字输入法的问题在于如何展示一个古文字,以及如何通过键盘的输入来映射出我们想要的古文字。

首先,我们必须明确一下几个关键点:

  • 展示古文字
  • 通过键盘输入获取到古文字

其次,我们可以考虑如下的功能:

  • 根据用户打字习惯来对文字的输出进行排序,优先将用户常用的文字排在前头
  • 多种键盘输入到古文字的映射

问题

  • 现阶段需要设计一个输入法中专用的实体来表示古文字,但是如何保证文章标识的文字和输入法中的文字的一致性
  • 确定输入法文字实体的属性
  • 允许文档形式的同一种文字存在不同的文档实体,但是输入法对于同一个文字只能有同一个实体

构思

确定新的文字实体属性:

  • id 对于文字的唯一标识
  • char_svg 该文字的SVG格式
  • char_pron 发音
  • char_img_path 该文字的图片路径
  • article_link 含有该文字的文章头信息列表
  • char_link 该文字的文档形式的头信息列表
  • pass_audit 该文字是否通过审核,0表示未审核、1表示已审核

存储方式:

利用redis做高速逆向索引,key为字符串序列,value为id set

利用mongoDB做输入法古文字实体存储

为了保证mongoDB和redis的一致性,可以周期性的同步数据

由于图片需要校验和来进行校验,所以需要有一个内部的图片Header,来保存图片的信息

接口:

接口说明

本接口用于获取当前字符序列可以查询到的古文字列表

接口请求地址

https://211.87.232.200/input/search

请求头

请求头请求内容说明
idString当前用户id

请求方式:GET

参数类型:JSON

请求示例

{
    "search_code" : "jian"
}

请求参数说明:

字段名字段说明字段类型是否必填
search_code用于查询古文字的字符串序列string

响应示例

成功响应编码:

{
    "code": "200",
    "message": "请求成功",
    "data": [
        {
            "id": "51928374",
            "char_svg": "<...> </...>",
            "char_pron": "jian"
            "char_img_path": "https://...",
            "article_link": [
                {
                    "aid": "1919810",
                    "title": "Grand Maison Tokyo",
                    "articleauthor": "...",
                    "bookname": "EsCoffile",
                    "dynasty": "宋"
                }
            ],
            "char_link": [
                {
                    "id": "1987510",
                    "img_path": "http://...",
   					"pronunciation": [
                        "jian",
                        "..."
                    ],
                }
            ]
        }
    ]
}

失败响应编码:

{
    "code": "400",
    "message": "请求参数异常",
}

响应参数说明

接口返回码接口返回描述
200请求正确
400请求参数异常
500服务器异常

接口说明

本接口用于插入新的古文字集合

接口请求地址

https://211.87.232.200/input/insert

请求头

请求头请求内容说明
zmw“zmw” + “(用户token)”用户token鉴权,内容示例:zmw28402088…
idString当前用户id

请求方式:POST

参数类型:JSON

请求示例

[
    {
		"char_svg": "<...>...</...> ",
        "char_pron": ["...", "..."],
        "base64": "...",
        "belong_article_id": "...",
    },
    {
		"char_svg": "<...>...</...> ",
        "char_pron": ["...", "..."],
        "base64": "...",
        "belong_article_id": "...",
    }
]

请求参数说明:

字段名字段说明字段类型是否必填
char_svg古文字的SVG格式string
char_pron古文字的字符序列标识List
base64图片的base64编码string
belong_article_id古文字所属的文章idstring

响应示例

成功响应编码:

{
    "code": "200",
    "message": "插入成功, 该文字正在等待被审核",
    "data": [
        {
            "id": "51928374",
            "char_svg": "<...> </...>",
            "char_pron": "jian",
            "char_img_path": "https://...",
            "article_link": [
                {
                    "aid": "1919810",
                    "title": "Grand Maison Tokyo",
                    "articleauthor": "...",
                    "bookname": "EsCoffile",
                    "dynasty": "宋"
                }
            ],
            "char_link": [
                {
                    "id": "1987510",
                    "img_path": "http://...",
   					"pronunciation": [
                        "jian",
                        "..."
                    ],
                }
            ]
        }
    ]
}

失败响应编码:

{
    "code": "401",
    "message": "该字符已经存在",
}

响应参数说明

接口返回码接口返回描述
200插入成功,但是等待被审核
400请求参数异常
401重复添加资源
500服务器异常
501服务器文件写入错误

接口说明

本接口用于记录用户选择字符的情况

接口请求地址

https://211.87.232.200/input/recordSelection

请求头

请求头请求内容说明
idString当前用户id

请求方式:POST

参数类型:JSON

请求示例

{
    "cid" : "149283714"
}

请求参数说明:

字段名字段说明字段类型是否必填
cid用户选择的字符的idstring

响应示例

成功响应编码:

{
    "code": "200",
    "message": "记录成功",
}

失败响应编码:

{
    "code": "400",
    "message": "请求参数异常",
}

响应参数说明

接口返回码接口返回描述
200请求正确
400请求参数异常
500服务器异常

接口说明

本接口用于更新现有的古文字实体信息

接口请求地址

https://211.87.232.200/input/update

请求头

请求头请求内容说明
idString当前用户id

请求方式:POST

参数类型:JSON

请求示例

{
    "id": "51928374",
    "char_svg": "<...> </...>",
    "char_pron": "jian",
    "char_img_path": "https://...",
    "article_link": [
        {
            "aid": "1919810",
            "title": "Grand Maison Tokyo",
            "articleauthor": "...",
            "bookname": "EsCoffile",
            "dynasty": "宋"
        }
    ],
    "char_link": [
        {
            "id": "1987510",
            "img_path": "http://...",
            "pronunciation": [
                "jian",
                "..."
            ],
        }
    ]
}

请求参数说明:

字段名字段说明字段类型是否必填
——修改完成后的古文字实体的JSONObject字符串string

特别提示

如果没有特殊原因,请不要修改article_link字段和char_link字段

响应示例

成功响应编码:

 {
     "code": "200",
     "message": "请求成功",
     "data": [
         {
             "id": "51928374",
             "char_svg": "<...> </...>",
             "char_pron": [
                 "jian",
                 "yan",
                 "114514"
             ],
             "char_img_path": "https://...",
             "article_link": [
                 {
                     "aid": "1919810",
                     "title": "Grand Maison Tokyo",
                     "articleauthor": "...",
                     "bookname": "EsCoffile",
                     "dynasty": "宋"
                 }
             ],
             "char_link": [
                 {
                     "id": "1987510",
                     "img_path": "http://...",
                     "pronunciation": [
                         "jian",
                         "..."
                     ],
                 }
             ]
         }
     ]
 }

失败响应编码:

 {
     "code": "400",
     "message": "请求参数异常",
 }

响应参数说明

接口返回码接口返回描述
200请求正确
400请求参数异常
500服务器异常

接口说明

本接口用于删除现有的古文字实体信息

接口请求地址

https://211.87.232.200/input/delete

请求头

请求头请求内容说明
idString当前用户id

请求方式:POST

参数类型:JSON

请求示例

{
    "cIDs": ["51928374", "1235161"]
}

请求参数说明:

字段名字段说明字段类型是否必填
cIDs需要集体删除的古文字ID列表List

响应示例

成功响应编码:

 {
     "code": "200",
     "message": "删除成功,删除了 2 个古文字",
 }

失败响应编码:

 {
     "code": "400",
     "message": "请求参数异常",
 }

响应参数说明

接口返回码接口返回描述
200请求正确
400请求参数异常
500服务器异常
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值