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/streamsRequest 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/streamsResponse Sample:
["mystream"]show streams detail
The API is used for displaying all detailed definition of streams defined in the server.
GET http://localhost:9081/streamdetailsResponse 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}/schemaThe 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"
}
}
}
}
}For a shared stream, the schema adjusts dynamically during runtime according to the active processing rules. To reduce computational overhead, the system maintains only the minimal schema needed to support those rules.
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}