#mbus #http #http-api #openapi #swagger #api-client #http-request

mbus-api

一个暴露 (有线) M-Bus 功能的 RESTful HTTP API

8 个版本

0.3.5 2021年5月6日
0.3.4 2020年10月31日
0.3.2 2020年6月25日
0.2.0 2020年5月31日
0.1.0 2019年4月6日

#25 in #swagger


用于 mbus

GPL-3.0-or-later

130KB
2.5K SLoC

mbus-api

mbus-api 是一个设计用来控制有线 M-Bus 的 HTTP RESTful API。这个仓库包括

  • OpenAPI 格式下的 OpenAPI 格式的 API 规范。
  • Rust 语言实现的客户端和服务器骨架。

可以在 https://github.com/packom/mbus-httpd 找到针对 Linux 的功能齐全的服务器实现。

以下文本由 openapi-generator 自动生成。

Rust API for openapi_client

未提供描述(由 Openapi Generator 生成 https://github.com/openapitools/openapi-generator

概述

此客户端/服务器由 [openapi-generator] (https://openapi-generator.tech) 项目生成。通过使用远程服务器的 OpenAPI-Spec,您可以轻松生成服务器存根。

要了解如何使其成为您自己的,请看这里

README

  • API 版本:0.3.5
  • 构建日期:2021-05-06T09:31:40.740451ZEtc/UTC

此自动生成的项目定义了一个 API 包 openapi_client,它包含

  • 定义 Rust 中 API 的 Api trait。
  • 表示底层数据模型的数据类型。
  • 一个实现 Api 并为每个操作发出 HTTP 请求的 Client 类型。
  • 一个接受 HTTP 请求并调用每个操作的相应 Api 方法的路由器。

它还包含一个示例服务器和客户端,它们使用 openapi_client

  • 示例服务器通过使用 openapi_client 路由器启动一个 web 服务器,并为每个操作提供一个返回失败的简单 Api 实现。
  • 示例客户端提供一个 CLI,允许您通过在命令行中传递适当的参数来调用 openapi_client 客户端的任何单个操作。

您可以将示例服务器和客户端代码作为您自己代码的基础。有关实现服务器的更多详细信息,请参阅下面的说明

示例

运行示例

cargo run --example <example-name>

要将参数传递给示例,请将它们放在 -- 之后,例如

cargo run --example client -- --help

运行示例服务器

要运行服务器,请按照以下简单步骤操作

cargo run --example server

运行示例客户端

要运行客户端,请按照以下简单步骤之一操作

cargo run --example client Get
cargo run --example client GetMulti
cargo run --example client Hat
cargo run --example client HatOff
cargo run --example client HatOn
cargo run --example client MbusApi
cargo run --example client Scan

HTTPS

可以通过传递标志 --https 以 HTTPS 模式运行示例,例如

cargo run --example server -- --https

这将使用示例目录中的密钥/证书。请注意,服务器链已由 CN=localhost 签名。

使用生成的库

生成的库有一些可以通过 Cargo 激活的可选功能。

  • 服务器
    • 默认启用并创建基于 hyper 的服务器实现的基本骨架
    • 要创建服务器堆栈,您需要提供一个实现 API 特性的实现,以提供服务器功能。
  • 客户端
    • 默认启用并创建基于 hyper 的客户端实现的基本骨架
    • 构造的客户端通过执行远程 API 调用来实现 API 特性。
  • 转换
    • 默认禁用,并在模型上创建额外的 derives 以允许在结构类似的对象之间进行“转换”。

有关如何在 Cargo.toml 中使用功能的说明,请参阅https://doc.rust-lang.net.cn/cargo/reference/manifest.html#the-features-section

API 端点的文档

所有 URI 都相对于 https://127.0.0.1

方法 HTTP 请求 描述
get POST /mbus/get/{device}/{baudrate}/{address}
getMulti POST /mbus/getMulti/{device}/{baudrate}/{address}/{maxframes}
hat GET /mbus/hat
hatOff POST /mbus/hat/off
hatOn POST /mbus/hat/on
mbus_api GET /mbus/api
scan POST /mbus/scan/{device}/{baudrate}

模型的文档

授权的文档

端点不需要授权。

作者

依赖项

~12–24MB
~349K SLoC