连接的无功电子设备。

cred-server的Python项目详细描述


cred
===
**cred**(连接的无功电子设备),使您能够连接您的
电子设备,以便它们能够相互通信
,并对网络中发生的事件作出反应。



在客厅里。如果连接了灯开关,然后打开它,它将发送一个事件,如:恒温器将订阅的


``json
{
"设备":"灯"
"位置":"客厅"
"操作":"切换"
"值":"开"
}
```

。然后,服务器会在事件发生时将其传输到恒温器,恒温器也会相应地工作,例如调高房间的温度,因为它现在最有可能被占用。

usage
==
只需使用pip安装,添加配置并运行它。

1.`$pip安装cred服务器`
3。`$cred server`

,并使用curl测试api:)




生成api密钥
==
您可以使用命令行实用程序"cred gen"生成api密钥。确保
它使用与服务器相同的配置。有三种不同的权限级别,

|除了api键之外,所有get都可以

有关如何使用该程序的详细信息,请参见"cred gen--help"。



机翼顺序:
1。本地目录
2。用户主目录
3。用户应用程序目录
4。系统应用程序目录

搜索的文件名为credrc for 1.,3。4。CREDRC和2.如果没有找到,它将使用默认配置。


sqlite3数据库的本地设置示例配置:

``yaml
ssl:false
approt:'127.0.0.1'
主机:'*'
端口:5000
计划程序:false
计划周期:30
pingtimeout:240
数据库:
类型:'sqlite3'
用户:'
密码:'
主机:'
端口:'
数据库:'cred server.db'
```````

或使用postgresql,

``yaml
ssl:false
批准:'127.0.0.1'
主机:'*'
端口:5000
调度程序:false
调度周期:30
pingtime输出:240
数据库:
类型:'postgresql'
用户:'scott'
密码:'tiger'
主机:'localhost'
端口:'5432'
数据库:'mydatabase'
`````


api
==
url端点及其功能描述如下,

|方法函数
----------------
`/auth`获取验证客户端并返回会话密钥
`/events`获取返回所有事件的ID,按ID降序排列|
`/events` post创建与发布它的客户关联的新事件
`/events/<;int>;` get返回特定事件的完整信息
`/clients` get返回重新激活
`/clients/me`获取返回有关客户端本身的信息
`/clients/<;int>;`获取返回有关特定客户端的信息
`/clients/<;int>;/events`获取返回来自e client
`/clients/<;int>;/subscribed events ` get返回客户端订阅的所有事件的ID

所有get的issions和所有post和get的write。


/<;int>;` get返回有关特定API密钥的信息


这些资源是特殊的,需要管理员权限。


以下参数在对以下资源使用get
请求时起作用:events和/clients、
/clients/<;int>;/events、/clients/<;int>;/subscribedevents和/apikeys。


/>|` full=<;bool>;`返回完整信息,而不是只返回id
` before=<;int>;`返回小于
` after=<;int>;`返回大于
` limit=<;int>;`将项目数限制为<;int>;items
|` offset=<;int>;`跳过<;int>;在获取



full=true&limit=10&offset=10`,
将从10个最新事件之后开始,提取10个事件的完整信息。如果您希望能够提取所有事件并对其进行分页或类似的操作,则此功能非常有用。要进入下一页,您需要添加
参数`&from=`和返回的第一个id,然后再增加10个`/clients/<;int>;/事件之类的参数。full=true`可用于为客户端订阅的新事件拉取完整信息。


使用'after=<;int>;'参数,服务器现在不需要跟踪上次拉取客户端时的
,因为客户端可以控制它自己。举个例子,id=145的客户机正在执行第一系列请求:


1。客户端请求`/clients/145/subscribedevents?全=真&极限=10`
2。一个带有事件列表的响应返回,最新的是id=288
3。客户端请求`/clients/145/subscribedevents?from=true&after=288`
4。具有id>;288的所有事件的响应将返回

等。使服务器上保持的状态最小化。如果步骤2。没有生成
结果,客户机将设置"after=0",这仍然只提供新事件。




/en/latest/core/engines.html"sqlalchemy engines")(如sqlite3,
postgresql,postgresql+psycopg2等)。



frontend
===
您可以查看[cred web](https://github.com/technix/cred-web"cred web repository")以获得到api服务器的纯javascript前端。它显示活动客户端和所有即将到来的事件。



clients
==
要轻松创建连接到api服务器的客户端,您可以在[cred client]查看客户端库(https://github.com/technix/cred-client"cred client repository")。


development
=
运行:

1.`$git clone git@github.com:technix/cred-server.git&;cd cred server`
2.`$virtualenv env&;source env/bin/激活`
3。`$pip install-r requirements.txt `
4.安装-r requirements.txt。使用"nosetests"和"watch"运行测试(检测文件更改)

或一行代码,

``bash
$git clone git@github.com:technix/cred-server.git&;cd cred server&;virtualenv env&;source env/bin/activate&;pip install-r requirements.txt

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java在一个问题被连续正确回答三次/并添加差异后,我如何将程序循环回开始   Java中未实例化的匿名类   java如何在Android中录制视频,只允许横向模式和最长时间录制时间   java从另一个活动发送实时消息   多线程java线程和互斥   java禁用Spring安全日志   JAVA伊奥。StreamCorruptedException:在与子级和父级ProcessBuilder通信时写入子级中的标准输出时,流头无效   使用Java(HttpURLConnection)对Restheart进行身份验证(对于Mongodb)   java如何解决Jenkins中的SAXParseException?   java为什么我需要mockito来测试Spring应用程序?   计算sin-cos和tan时缺乏精度(java)   java Hibernate。不同项目中相同一对一映射的不同行为   java图像滑块:如何使用JavaFX将图像放在另一个图像上   java Mockito在使用when时抛出NotAMockException   http Java servlet发送回响应