Mainflux.mainflux/api/asyncapi/websocket.yml

142 lines
3.4 KiB
YAML
Raw Permalink Normal View History

MF-1761 - Improve path parameters naming (#1762) * Improve path parameters naming Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * Improve path parameter naming improve path parameter naming for: bootstrap/api/transport.go twins/api/http/transport.go Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * Change functions to suit updated path params Duplicated the functions decodeView and decodeListByConnection to form new functions decodeThingView, decodeChannelView, decodeThingListByConnection and decodeChannelListByConnection. This was as a result of the two functions being used for both view thing and view channel services Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * Improve path parameter naming Improve path parameter naming for: auth/api/http/groups/transport.go bootstrap/api/transport.go twins/api/http/transport.go ws/api/endpoints.go Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * fix swagger files Updated the following swagger files api/openapi/auth.yml api/openapi/cert.yml api/openapi/websocket.yml Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * Move websocket.yml from openapi to asyncapi deleted websocket.yml file in openapi and created websocket.yml file in asyncapi Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * Update websocket.yml file Update the websocket.yml file to make subtopic optional and added security (bearerAuth) Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * Format new line correctly format newline for api/asyncapi/websocket.yml Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update websocket.yml file update the websocket.yml file based on the requested review changes The document is now valid Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * Update path parameter naming make changes to path parameter naming in: api/openapi/consumers-notifiers.yml Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update path parameters naming Update path parameters naming to be consistent with Go Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * update the mqtt.yml file update the mqtt.yml file to the latest AsyncAPI version and make changes on the security of the server Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * Add contact information Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * Update api/asyncapi/mqtt.yml Co-authored-by: b1ackd0t <blackd0t@protonmail.com> Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> * Add an empty line between functions Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> --------- Signed-off-by: ianmuchyri <ianmuchiri8@gmail.com> Co-authored-by: b1ackd0t <blackd0t@protonmail.com> Co-authored-by: Drasko DRASKOVIC <drasko.draskovic@gmail.com>
2023-04-21 03:53:02 +08:00
asyncapi: 2.6.0
id: 'https://github.com/mainflux/mainflux/blob/master/api/asyncapi/websocket.yml'
info:
title: Mainflux WebSocket adapter
description: WebSocket API for sending messages through communication channels
version: '1.0.0'
contact:
name: Mainflux Team
url: 'https://github.com/mainflux/mainflux'
email: info@mainflux.com
license:
name: Apache 2.0
url: 'https://github.com/mainflux/mainflux/blob/master/LICENSE'
tags:
- name: WebSocket
defaultContentType: application/json
servers:
dev:
url: 'ws://{host}:{port}'
protocol: ws
description: Default WebSocket Adapter URL
variables:
host:
description: Hostname of the WebSocket adapter
default: localhost
port:
description: Mainflux WebSocket Adapter port
default: '8186'
channels:
'channels/{channelID}/messages/{subtopic}':
parameters:
channelID:
$ref: '#/components/parameters/channelID'
in: path
required: true
subtopic:
$ref: '#/components/parameters/subtopic'
in: path
required: false
publish:
summary: Publish messages to a channel
operationId: publishToChannel
message:
$ref: '#/components/messages/jsonMsg'
messageId: publishMessage
bindings:
ws:
method: POST
query:
subtopic: '{$request.query.subtopic}'
security:
- bearerAuth: []
subscribe:
summary: Subscribe to receive messages from a channel
operationId: subscribeToChannel
message:
$ref: '#/components/messages/jsonMsg'
messageId: subscribeMessage
bindings:
ws:
method: GET
query:
subtopic: '{$request.query.subtopic}'
security:
- bearerAuth: []
/version:
subscribe:
summary: Get the version of the Mainflux adapter
operationId: getVersion
bindings:
http:
method: GET
metrics:
description: Endpoint for getting service metrics.
subscribe:
operationId: metrics
summary: Service metrics
bindings:
http:
type: request
method: GET
components:
messages:
jsonMsg:
title: JSON Message
summary: Arbitrary JSON array or object.
contentType: application/json
payload:
$ref: '#/components/schemas/jsonMsg'
schemas:
jsonMsg:
type: object
description: Arbitrary JSON object or array. SenML format is recommended.
example: >
### SenML
```json
[{"bn":"some-base-name:","bt":1641646520, "bu":"A","bver":5,
"n":"voltage","u":"V","v":120.1}, {"n":"current","t":-5,"v":1.2},
{"n":"current","t":-4,"v":1.3}]
```
### JSON
```json
{"field_1":"val_1", "t": 1641646525}
```
### JSON Array
```json
[{"field_1":"val_1", "t": 1641646520},{"field_2":"val_2", "t":
1641646522}]
```
parameters:
channelID:
description: Channel ID connected to the Thing ID defined in the username.
schema:
type: string
format: uuid
subtopic:
description: Arbitrary message subtopic.
schema:
type: string
default: ''
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: uuid
description: |
* Thing access: "Authorization: Thing <thing_key>"