目录
Openboxes简介
开发环境配置及启动
更新中文多语言配置
API测试
-
Openboxes简介
Openboxes是一款开源的仓库管理软件,提供了库存管理、采购管理、销售管理等功能,可以帮助用户高效地管理仓库及库存。并提供了丰富的API接口。系统基于java8 和Grails框架开发,支持的数据库为mysql或mariadb。最新版的产品使用了js作为前端页面处理程序,较以前版本在界面布局上略有提升。产品支持多语言,但多语言翻译比例不高(至少中文的汉化比例是这样)。
产品主界面展示如下:
中文界面:
-
开发环境配置及启动
本文中的开发环境如下:
IDEA 2024.1
JAVA1.8
MySQL 8
具体配置过程如下:
- 克隆代码到本地,github地址:https://github.com/openboxes/openboxes
- idea打开本地源码目录,配置项目的java环境为JDK1.8
- 等待gradle项目刷新和加载,全部完成后,项目结构如下:本人在这个过程中,遇到的主要问题是连接超时,通过修改gradle仓库配置中的连接参数解决,主要是:
https.socketTimeout=60000 https.connectionTimeout=60000 http.socketTimeout=60000 http.connectionTimeout=60000
-
编辑配置文件,openboxes支持的配置文件有yml,groovy和properties,具体见源码目录中的grails-app/conf/application.yml,配置文件的位置和名称如下:
- file:${catalina.base}/.grails/openboxes-config.properties - file:${catalina.base}/.grails/openboxes-config.groovy - file:${catalina.base}/.grails/openboxes.yml - ~/.grails/openboxes-config.properties - ~/.grails/openboxes-config.groovy - ~/.grails/openboxes.yml
配置文件可以有多个,优先级又低到高,也就是说以最后一个文件的配置为准。本中中只编写了一个openboxes-config.properties文件,并将文件放置到 %USERPROFILE%/.grails目录下,如果本地%USERPROFILE%目录下没有.grails,需要手工创建。openboxes-config.properties文件内容参考如下:
dataSource.url=jdbc:mysql://localhost:3306/openboxes?allowPublicKeyRetrieval=true&useSSL=false dataSource.username=openboxes dataSource.password=openboxes # OpenBoxes mail settings (disabled by default) grails.mail.enabled=false openboxes.logo.url=/openboxes/assets/openboxes_logo_40x40.jpg
-
检查数据库及用户,根据本地数据库环境,调整数据库名称及数据库用户、密码,确保数据库连接正常。
-
启动开发环境,执行gradle中的bootRun任务,程序将完成依赖库的更新,node安装以及前端库的安装,这个过程会花费较长时间。过程中会出现Caused by: com.mysql.cj.exceptions.CJCommunicationsException: Communications link failure错误,可忽略。
-
浏览器中访问http://127.0.0.1:8080/openboxes或http://localhost:8080/openboxes,用户名,密码为:admin, password
-
切换语言:http://127.0.0.1:8080/openboxes
-
加载demo数据:选择load demo data即可
-
更新中文多语言配置
openboxes中的多语言通过配置文件对界面元素标签,表单title等进行翻译,配置文件位置位于grails-app/i18n/目录下,中文多语言文件为messages_zh.properties,这里需要注意的是,中文内容需要以unicode格式存储,如果以中文存储,仪表盘中的内容以及左侧快捷菜单显示的是乱码,这个问题已经提报到github,在程序没有处理前,可按unicode方式处理。本文提供的中文标签文件为google自动翻译后将中文转换为unicode编码,其中翻译的准确性并不一定高,可自行根据需要调整。
-
API测试
openboxes最新版中的api文档,参考链接为:OpenBoxes API Document。本文使用postman作为调试工具,验证了相关的api。
- 获取cookie,openboxes使用cookie作为api访问的鉴权方法,所以需要在使用api操作openboxes的服务时,首先要获取授权的cookie,具体方法是:请求成功后,获取响应头的cookie,postman中可通过右侧的cookie链接获取。
- API测试,根据参考文件中Generic API示例,测试获取产品列表:其中,请求头中的cookie参数为第一步获取的内容。其他API中也要提供这个参数才能正常访问。