---
title: RESTful API
tags: Columba
---
<style>
code.redrose {
color: #FFFFFF !important ; background-color:#E81E25 ; font-size: 14pt;
}
code.get {
color: #FFFFFF !important ; background-color:#48cc90 ; font-size: 14pt;
}
code.post {
color: #FFFFFF !important ; background-color:#fca12f ; font-size: 14pt;
}
code.put {
color: #FFFFFF !important ; background-color:#62afff ; font-size: 14pt;
}
code.del {
color: #FFFFFF !important ; background-color:#f83e3f ; font-size: 14pt;
}
code.get_txt {
color: #000000 !important ; background-color:#def0d8 ; font-size: 16pt;
}
code.post_txt {
color: #000000 !important ; background-color:#fbf9e4 ; font-size: 16pt;
}
code.put_txt {
color: #000000 !important ; background-color:#d9edf6 ; font-size: 16pt;
}
code.del_txt {
color: #000000 !important ; background-color:#f2dedf ; font-size: 16pt;
}
</Style>
| 日期 | 版號 | 說明 |
| ---------- | :--- | --------|
|2023/05/26 | v1.0|初稿|
|2023/10/19 | v1.0|大改|
:::info
[TOC]
:::
# MQTT
## 設備
### 1. 新增設備
:::warning
<code class="post">POST</code><code class="post_txt">/api/v1.0/columba/mqtt/device</code>
:::
:::spoiler
|Request|
|---|
```json=
POST /api/v1.0/columba/mqtt/device HTTP/1.1
Content-Type: application/json
[
{
"device_name":"ADAM",
"ip":"192.168.2.99",
"port":"",
"broker_host":"192.168.2.60",
"broker_port":"1883",
"broker_username":"touchcloud",
"broker_password":"touchcloud"
}
]
```
|Respond|
|---|
```json=
[
{
"Result": "Succee",
"Respond": "Device 'ADAM' is add"
}
]
```
:::
### 2. 取得設備設定資訊
:::success
<code class="get">GET</code><code class="get_txt">/api/v1.0/columba/mqtt/device</code>
:::
:::spoiler
|Request|
|---|
```json=
Get /api/v1.0/columba/mqtt/device HTTP/1.1
Content-Type: application/json
```
|Respond|
|---|
```json=
{
"Result": "Succee",
"Respond": [
{
"device_name": "ADAM",
"ip": "192.168.2.99",
"port": null,
"broker": {
"host": "localhost",
"port": 1883,
"username": "touchcloud",
"password": "touchcloud"
},
"points": {},
"last_time": 1685094563792
}
]
}
```
:::
### 3. 修改設備設定資訊
:::info
<code class="put">PUT</code><code class="put_txt">/api/v1.0/columba/mqtt/device</code>
:::
:::spoiler
|Request|
|---|
```json=
Put /api/v1.0/columba/mqtt/device HTTP/1.1
Content-Type: application/json
[
{
"device_name":"ADAM",
"update_payload":{
"device_name":"ADAM",
"ip":"192.168.2.99",
"port":"",
"broker_host":"192.168.2.60",
"broker_port":"1883",
"broker_username":"zack",
"broker_password":"zack"
}
}
]
```
|Respond|
|---|
```json=
[
{
"Result": "Succee",
"Respond": "Device 'ADAM' is set"
}
]
```
:::
### 4. 刪除設備
:::danger
<code class="del">DELETE</code><code class="del_txt">/api/v1.0/columba/mqtt/device</code>
:::
:::spoiler
|Request|
|---|
```jsonld=
DELETE /api/v1.0/columba/mqtt/device HTTP/1.1
Accept: application/json
["ADAM"]
```
|Response|
|---|
```json=
[
{
"Result": "Succee",
"Respond": "Device 'ADAM' is delete"
}
]
```
:::
## 點位
### 1. 新增設備點位
:::warning
<code class="post">POST</code><code class="post_txt">/api/v1.0/columba/mqtt/{device_name}/</code>
:::
:::spoiler
|Request|
|---|
```json=
POST /api/v1.0/columba/mqtt/ADAM HTTP/1.1
Content-Type: application/json
[
{
"point_name":"DO_0",
"RW": "R",
"unit": "",
"default_value":"off",
"read_topic":"Advantech/74FE487983F5/data",
"read_mark_key":"",
"read_mark_value":"",
"read_key":"do1",
"read_is_json_payload":true
}
]
```
|Respond|
|---|
```json=
[
{
"Result": "Succee",
"Respond": "Point 'DO_0' is add in 'ADAM'"
}
]
```
:::
### 2. 取得設備點位資訊
:::success
<code class="get">GET</code><code class="get_txt">/api/v1.0/columba/mqtt/{device_name}/</code>
:::
:::spoiler
|Request|
|---|
```json=
Get /api/v1.0/columba/mqtt/ADAM/ HTTP/1.1
Content-Type: application/json
```
|Respond|
|---|
```json=
{
"Result": "Succee",
"Respond": [
{
"point_name": "DO_0",
"RW": "R",
"unit": "",
"default_value": "off",
"read_topic": "Advantech/74FE487983F5/data",
"read_mark_key": "",
"read_mark_value": "",
"read_key": "do1",
"read_is_json_payload": true,
}
]
}
```
:::
### 3. 修改設備點位資訊
:::info
<code class="put">PUT</code><code class="put_txt">/api/v1.0/columba/mqtt/{device_name}/</code>
:::
:::spoiler
|Request|
|---|
```json=
Put /api/v1.0/columba/mqtt/ADAM/ HTTP/1.1
Content-Type: application/json
[
{
"point_name":"DO_0",
"update_payload":{
"point_name":"DO_0",
"RW": "R",
"unit": "",
"default_value":"on",
"read_topic":"Advantech/74FE487983F5/data",
"read_mark_key":"",
"read_mark_value":"",
"read_key":"do1",
"read_is_json_payload":true
}
}
]
```
|Respond|
|---|
```json=
[
{
"Result": "Succee",
"Respond": "Point 'DO_0' is set"
}
]
```
:::
### 4. 刪除設備點位
:::danger
<code class="del">DELETE</code><code class="del_txt">/api/v1.0/columba/mqtt/{device_name}/</code>
:::
:::spoiler
|Request|
|---|
```jsonld=
DELETE /api/v1.0/columba/mqtt/ADAM/ HTTP/1.1
Accept: application/json
["DO_0"]
```
|Response|
|---|
```json=
[
{
"Result": "Succee",
"Respond": "Point 'DO_0' is delete"
}
]
```
:::