23个不稳定版本 (7个破坏性)

0.9.2 2024年6月19日
0.7.1 2024年5月16日
0.7.0 2024年1月3日
0.5.5 2023年5月26日
0.4.1 2023年2月28日

#665 in Web编程

Download history 242/week @ 2024-05-13 21/week @ 2024-05-20 26/week @ 2024-05-27 2/week @ 2024-06-03 9/week @ 2024-06-10 192/week @ 2024-06-17 107/week @ 2024-07-01 192/week @ 2024-07-29

每月192次下载

MIT许可证

1.5MB
40K SLoC

Rust 23K SLoC // 0.0% comments TSX 10K SLoC // 0.0% comments TypeScript 3.5K SLoC // 0.0% comments SQL 2.5K SLoC // 0.1% comments JavaScript 25 SLoC Shell 4 SLoC

部署

在Kubernetes集群中运行

待办:编写

面向开发者

设置开发环境

1. 创建用户配置

此配置将自动获取

echo "DB_USER=$(whoami)
DB_NAME=samling
SECRET=abc123
LOG_LEVEL=info
CORS_ALLOWED_ORIGINS=https://127.0.0.1:3000,http://127.0.0.1:3000
CLOUDFLARE_ACCOUNT_ID=abc
CLOUDFLARE_TOKEN=123
SAMLING_PRETTY_RESPONSES=true" > .env

2. 创建数据库并迁移

createdb samling
cargo run migrate

3. 创建用户

将用户ID作为环境变量导出,我们稍后会用到。USER_ID应该是如本例中的1,如果数据库是干净的。我们还会存储SUPERUSER_ID以供CLI访问。

cargo run users create --name 'My Name' --email [email protected] --password MyPassword
export USER_ID=1
echo SUPERUSER_ID=$USER_ID >> .env

4. 创建组织

cargo run organizations create 'Company Name'
export ORGANIZATION_ID=1

5. 将所有角色关联到超级用户

注意: ORGANIZATION_ID可能与1不同。

cargo run users associate-roles --all $USER_ID $ORGANIZATION_ID

6. 启动API服务器

cargo run serve

7.(可选)存储API令牌以便方便地进行API调用

注意:存储的API令牌每7天需要更新一次,以便api命令可以正常工作。

echo SAMLING_TOKEN=$(cargo run generate-user-token $USER_ID) >> .env

技巧!您可以使用cargo-watch在代码更改时自动重启服务器。

cargo watch -- cargo run serve

8. 启动前端

这很简单!只需这样做

cd ui
npm install
npm start

通过API创建数据

目前,创建类别、价格、样式等数据的唯一方式是通过API。

例如,创建名为T-Shirts的类别

echo '{"name": {"en": "T-shirts"}}' | samling api -d - PUT 1/categories/external_id:BC-TShirts

一个样式

echo '{"number": "A12345", "name": {"en": "Cool t-shirt"}}' | samling api -d - PUT 1/styles/external_id:BC-A12345

一个颜色,与上述样式相关联

echo '{"number": "HBlue", "name": {"en": "Hazy Blue"}, "style": {"external_id": "BC-A12345"}}' | samling api -d - PUT 1/colors/external_id:BC-A12345-HBlue

一个尺寸,与上述颜色相关联

echo '{"number": "XS", "name": {"en": "Extra small"}, "position": 1, "color": {"external_id": "BC-A12345-HBlue"}}' | samling api -d - PUT 1/sizes/external_id:BC-A12345-HBlue-XS

注意我们在这里使用的是带有指定在URL中的外部ID的PUT请求。这将是从您的ERP系统中同步数据的典型方式。

依赖项

~38–71MB
~1M SLoC