openthc/api

OpenTHC API

dev-main 2024-08-02 18:14 UTC

README

为实施大麻数据系统提供公共参考和API端点规范。

大麻监管合规的世界复杂而庞大。有成百上千的供应商,每个供应商都有一个共同的目标,但没有API,部分API,或者实施了一种独特的风味。这个接口的目标是提供一个数据互操作的基础。

我们希望大麻行业的其他人可以采用这里发布的一些概念和设计,全部或部分采用。开放问题,提交PR等,我们可以共同构建我们希望看到的未来。

通用数据模型

将行业团结在一起的重要第一步是开始使用共同术语进行交流,第二步是使用通用接口。

OpenTHC API规范旨在定义数据模型的核心部分和推荐接口。API和数据模型在openapi目录中定义。基础数据(例如:在etc目录中的lab-metric、product-type)的定义。

有一些脚本可以将YAML处理成其他格式(JSON、CSV、SQL),在bin目录中。但,YAML非常简单,可以用你喜欢的工具快速处理。

通用接口

OpenTHC API模块提供了一种读取/写入兼容系统的方法。一套用于大麻行业对象的标准化基础数据模型。

这个API受到了Open API倡议和数据传输项目的影响。

  • 使用国际单位制(SI)的重量和体积值。
  • 使用ISO 8601日期和时间值。

我们提供了一些基础数据和JSON模式示例。

文档

文档是使用Asciidoc和OpenAPI的组合创建的。

Asciidoc在doc目录中,OpenAPI源在openapi目录中。

./make.sh docs

JSON模式

为系统中的所有对象发布JSON模式,它们位于./webroot/pub/json-schema目录中。这些文件是从./swagger中的YAML文档构建的。在./json-example中提供了示例对象。

./make.sh docs-openapi

数据模型

该行业有一系列“基础”数据,包括公司、公司类型、许可证、许可证类型、产品类型、品种和实验室指标。在./etc目录中包含了描述这些常见对象的预填充yaml文件。使用我们所有人都关心的通用标识符将提高互操作性。

许可证配置数据

这些对象是为系统中的每个公司或许可证定义的。包括:产品、品种、区域、车辆(尽管,区域和车辆只为向后兼容存在)

许可操作数据

  • 作物/植物
  • 库存批次
  • 实验室样本/实验室结果
  • B2B交易和B2B交易项目
  • B2C交易和B2C交易项目

测试

在 ./test 运行单元测试

./make.sh test

您还可以使用 Prism 运行模拟接口。

依赖项

此项目依赖于 Asciidoc/Asciidoctor(Python,Ruby)和一些构建脚本(JS,PHP,Ruby)。只需查看 make.sh 脚本获取最新信息。

另请参阅