#i2c-bus #http #i2c #bus #http-api #swagger #openapi

pca9956b-api

用于I2C总线控制的HTTP RESTful API和服务器/客户端骨架实现

2个版本

0.1.2 2020年5月25日
0.1.1 2019年4月6日

#1969 in Web编程


pca9956b 中使用

GPL-3.0-or-later

705KB
12K SLoC

pca9956b-api

pca9956b-api 是一个用于控制PCA9956B集成电路的HTTP RESTful API。此仓库包括

可以在 https://github.com/packom/pca9956b 找到适用于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.1.2
  • 构建日期:2020-05-25T09:11:52.903808ZEtc/UTC

此自动生成项目定义了一个API crate openapi_client,其中包含

  • 定义API的Rust中的 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 ClearError
cargo run --example client GetAddrEnabled
cargo run --example client GetAddrInfo
cargo run --example client GetAddrValue
cargo run --example client GetApi
cargo run --example client GetConfig
cargo run --example client GetCurrent
cargo run --example client GetError
cargo run --example client GetErrors
cargo run --example client GetFreq
cargo run --example client GetGroup
cargo run --example client GetLedCurrent
cargo run --example client GetLedError
cargo run --example client GetLedInfo
cargo run --example client GetLedInfoAll
cargo run --example client GetLedPwm
cargo run --example client GetLedState
cargo run --example client GetOffset
cargo run --example client GetOutputChange
cargo run --example client GetOverTemp
cargo run --example client GetPwm
cargo run --example client GetSleep
cargo run --example client Reset
cargo run --example client SetAddrEnabled
cargo run --example client SetAddrValue
cargo run --example client SetCurrent
cargo run --example client SetFreq
cargo run --example client SetLedCurrent
cargo run --example client SetLedPwm
cargo run --example client SetOffset
cargo run --example client SetPwm
cargo run --example client SetSleep

HTTPS

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

cargo run --example server -- --https

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

使用生成的库

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

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

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

API 端点文档

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

方法 HTTP 请求 描述
clear_error POST /pca9956b/{busId}/{addr}/error/clear
get_addr_enabled GET /pca9956b/{busId}/{addr}/addr/{num}/enabled
get_addr_info GET /pca9956b/{busId}/{addr}/addr/{num}
get_addr_value GET /pca9956b/{busId}/{addr}/addr/{num}/addr
get_api GET /pca9956b/api
get_config GET /pca9956b/{busId}/{addr}/config
get_current GET /pca9956b/{busId}/{addr}/current
get_error GET /pca9956b/{busId}/{addr}/error
get_errors POST /pca9956b/{busId}/{addr}/errors
get_freq GET /pca9956b/{busId}/{addr}/freq
get_group GET /pca9956b/{busId}/{addr}/group
get_led_current GET /pca9956b/{busId}/{addr}/led/{led}/current
get_led_error GET /pca9956b/{busId}/{addr}/led/{led}/error
get_led_info GET /pca9956b/{busId}/{addr}/led/{led}
get_led_info_all GET /pca9956b/{busId}/{addr}/led
get_led_pwm GET /pca9956b/{busId}/{addr}/led/{led}/pwm
get_led_state GET /pca9956b/{busId}/{addr}/led/{led}/state
get_offset GET /pca9956b/{busId}/{addr}/offset
get_output_change GET /pca9956b/{busId}/{addr}/outputChange
get_over_temp GET /pca9956b/{busId}/{addr}/overTemp
get_pwm GET /pca9956b/{busId}/{addr}/pwm
get_sleep GET /pca9956b/{busId}/{addr}/sleep
reset POST /pca9956b/{busId}/reset
set_addr_enabled POST /pca9956b/{busId}/{addr}/addr/{num}/enabled/{enabled}
set_addr_value POST /pca9956b/{busId}/{addr}/addr/{num}/addr/{addrVal}
set_config POST /pca9956b/{busId}/{addr}/config
set_current POST /pca9956b/{busId}/{addr}/current/{current}
set_freq POST /pca9956b/{busId}/{addr}/freq/{freq}
设置组 POST /pca9956b/{busId}/{addr}/group/{group}
设置LED电流 POST /pca9956b/{busId}/{addr}/led/{led}/current/{current}
设置LED错误 POST /pca9956b/{busId}/{addr}/led/{led}/error/{error}
设置LED信息 POST /pca9956b/{busId}/{addr}/led/{led}
设置所有LED信息 POST /pca9956b/{busId}/{addr}/led
设置LEDPWM POST /pca9956b/{busId}/{addr}/led/{led}/pwm/{pwm}
设置LED状态 POST /pca9956b/{busId}/{addr}/led/{led}/state/{state}
设置偏移量 POST /pca9956b/{busId}/{addr}/offset/{offset}
设置输出变化 POST /pca9956b/{busId}/{addr}/outputChange/{outputChange}
设置PWM POST /pca9956b/{busId}/{addr}/pwm/{pwm}
设置睡眠 POST /pca9956b/{busId}/{addr}/sleep/{sleep}

模型文档

授权文档

端点无需授权。

作者

依赖关系

~8–20MB
~288K SLoC