物联网空间的http/rest接口提供程序
IoticHttp的Python项目详细描述
qapi代理为iotic实验室队列提供了一个http/restful接口。 应用程序编程接口。http接口可以是安全的(tls 1.2)或不安全的(纯http) 如你所愿。
它的用途
代理存在2个原因1。它是物联网实验室网络的一部分 基础设施和允许物联网空间Web应用程序作为物联网的东西 2。为受约束而无法运行代理的设备提供代理 他们自己。这可能是因为他们无法运行python或 没有足够的处理能力运行TLS 1.2。
限制。
- 代理不公开完整的qapi功能,但是 添加新函数c.f.metahelper相当容易
需要
- Python3(用3.4.3测试)
如果使用src release:-py ioticagent https://github.com/Iotic-Labs/py-IoticAgent-可选/mysqlclient https://pypi.python.org/pypi/mysqlclient-要启用的可选/rdflib 获取放置/实体/点…/metahelper url
配置选项
qapiproxy可以从ini文件加载它的所有配置。可选存储 代理凭据MySQL数据库。
- 公共设置``ini[https];restserver的主机和端口 实例主机=10.0.1.2端口=8118;SSL文件SSL U CA= /路径/to/ca.bundle或proxy.crt(如果是自签名的ssl-crt)= /path/to/proxy.crt ssl-key=/path/to/proxy.key;如果ssl-key是 受密码保护ssl pass=密码
[qapimanager];检查新代理的配置的频率(秒) 0禁用新的工作进程=5;每个代理有多少未经请求的消息 应存储,0表示禁用;FeedData和ControlReq表示未经请求(例如 重新分配,新订户等)保持FeedData=50保持控制请求= 50保持主动=50;如果您的经纪人需要自签名 证书或用户名前缀或vhost;可以在此处指定 将扩展所有代理详细信息(db或ini);vhost=example;prefix= 示例;sslca=示例``
- ini或mysql``ini[config];模式可以是'ini'或'mysql'模式= mysql;如果mode=mysql dbhost=host dbport=port dbname=database name dbuser=用户名dbpass=密码
;如果mode=ini,则可以存储1..n个代理的列表
agents=name;或多个在newline agents=nameone name2上 名称3
;对于每个[nameone];代理凭据host=host vhost=vhost epid =epid password=password;authTokens是允许 使用此代理的远程对象authTokens=Token;多行 authtokens=令牌令牌;如果未指定vhost、prefix或sslca 在qapimanager中;只能在此为该代理指定(仅限ini); vhost=xx;prefix=xy;sslca=xz```
安装
构建(如果使用src release)
- create.pyz:cd src&;/make_pyz.sh
- 在当前目录中运行(作为当前用户):pythonpath=qapiproxy.pyz python3-mqapiproxy qapiproxy.cfg
服务
qapiproxy.init是一个LSB4.1兼容的服务脚本。见 安装程序脚本顶部的配置选项。(在 qapiproxyy应作为非根用户运行。)
使用服务在后台运行qapiroxy:
# Create a directory for the log file mkdir data # Put the config in the expected location ln -sfv cfg/example.ini qapiproxy.cfg # Start the service ./qapiproxy.init start # Follow the log tail -f data/qapiproxy.log # Stop the service ./qapiproxy.init stop
对于系统服务:-编辑qapiroxy.init qapiroxy_run_dir和 qapiproxy_用户-cp qapiproxy.init/etc/init.d/qapiproxy-chmod a+x /etc/init.d/qapiproxy-chkconfig–添加qapiproxy-chkconfig qapiproxy 关闭不要自动启动,因为这取决于运行的所有内容 已经-sudo服务qapiproxy启动