Streams management
The eKuiper REST api for streams allows you to manage the streams, such as create, describe, show and drop stream definitions.
create a stream
The API is used for creating a stream. For more detailed information of stream definition, please refer to streams.
POST http://localhost:9081/streams
Request sample, the request is a json string with sql
field.
{"sql":"create stream my_stream (id bigint, name string, score float) WITH ( datasource = \"topic/temperature\", FORMAT = \"json\", KEY = \"id\")"}
This API can run any stream sql statements, not only stream creation.
show streams
The API is used for displaying all of streams defined in the server.
GET http://localhost:9081/streams
Response Sample:
["mystream"]
show streams detail
The API is used for displaying all detailed definition of streams defined in the server.
GET http://localhost:9081/streamdetails
Response Sample:
[
{
"name": "test1",
"type": "mqtt",
"format": "json"
}
]
describe a stream
The API is used for print the detailed definition of stream.
GET http://localhost:9081/streams/{id}}
Response Sample:
{
"Name": "demo",
"StreamFields": [
{
"Name": "temperature",
"FieldType": {
"Type": 2
}
},
{
"Name": "ts",
"FieldType": {
"Type": 1
}
}
],
"Options": {
"DATASOURCE": "demo",
"FORMAT": "JSON"
}
}
Get stream schema
The API is used to get the stream schema. The schema is inferred from the physical and logical schema definitions.
GET http://localhost:9081/streams/{id}/schema
The format is like Json schema:
{
"id": {
"type": "bigint"
},
"name": {
"type": "string"
},
"age": {
"type": "bigint"
},
"hobbies": {
"type": "struct",
"properties": {
"indoor": {
"type": "array",
"items": {
"type": "string"
}
},
"outdoor": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
update a stream
The API is used for update the stream definition.
PUT http://localhost:9081/streams/{id}
Path parameter id
is the id or name of the old stream.
Request sample, the request is a json string with sql
field.
{"sql":"create stream my_stream (id bigint, name string, score float) WITH ( datasource = \"topic/temperature\", FORMAT = \"json\", KEY = \"id\")"}
drop a stream
The API is used for drop the stream definition.
DELETE http://localhost:9081/streams/{id}