openthc / api
OpenTHC API
Requires
- ext-yaml: *
- edoceo/lowline: 2022.0.280
- justinrainbow/json-schema: 5.2.12
- openthc/common: dev-main
- zircote/swagger-php: 4.4.4
Requires (Dev)
- phpmd/phpmd: 2.15.0
- phpstan/phpstan: 1.11.8
- phpunit/phpunit: 9.6.20
This package is auto-updated.
Last update: 2024-09-02 18:25:16 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 脚本获取最新信息。
另请参阅
- https://openapis.org.cn/
- https://asciidoctor.org/
- https://redoc.ly/redoc/
- https://jsonschema.net/#/
- https://www.jsonschemavalidator.net/
- https://github.com/epoberezkin/ajv
- https://github.com/zircote/swagger-php
- https://github.com/jensoleg/swagger-ui
- https://github.com/E96/swagger2slate
- 如何设计明天的API
- Ask HN:您首选的优质REST API示例是什么?
- Ask HN:有哪些关于设计API的好书?
- Microsoft REST API指南