4. Componentes e APIs¶
4.1. Componentes¶
Componentes
|
Repositório
/ Site principal
|
Documentação
dos componentes
|
API de componentes
Documentação
|
---|---|---|---|
MongoDB |
|||
Postgres |
|||
Kong API gateway
(Community Edition)
|
|||
Redis |
|||
Zookeeper |
|||
Kafka |
|||
VerneMQ |
|||
Leshan |
|||
InfluxDB |
|||
Auth |
|||
Dojot Kong |
|||
History |
|||
Device Manager |
|||
Image Manager |
|||
GUI |
|||
GUI - V2 |
|||
Flowbroker |
|||
Databroker |
|||
IotAgent VerneMQ
(MQTT) - Padrão
|
|||
IotAgent Mosca
(MQTT) - Legado
|
|||
IotAgent Leshan
(LWM2M)
|
|||
IotAgent HTTP |
|||
Data Manager |
|||
Cron |
|||
X.509 Identity Management |
|||
Kafka2Ftp |
|||
Kafka WS |
|||
InfluxDB Storer and Retriever |
|||
File-mgmt |
|||
Basic-auth |
4.2. APIs expostas (API Gateway)¶
O API gateway usado na dojot reencaminha alguns dos endpoints dos componentes. A tabela a seguir mostra o mapeamento entre endpoints expostos e endpoints de componentes. Veja mais sobre como usar as APIs em Utilizando a API da dojot.
Componentes
|
Endpoints expostos
pelo API gateway
|
Componentes
Endpoint
|
Componentes
Endpoint
Documentação
|
Precisa de
Autenticação
|
---|---|---|---|---|
GUI |
/ |
/ |
Não |
|
Dashboard |
/v2 |
/ |
Não |
|
Device Manager |
/device |
/device |
Sim |
|
Device Manager |
/template |
/template |
Sim |
|
Flowbroker |
/flows |
/ |
Sim |
|
Auth |
/auth |
/ |
Não |
|
Auth |
/auth/revoke |
/revoke |
Não |
|
Auth |
/auth/user |
/user |
Sim |
|
Auth |
/auth/pap |
/pap |
Sim |
|
History |
/history |
/ |
Sim |
|
Data Manager |
/import |
/import |
Sim |
|
Data Manager |
/export |
/export |
Sim |
|
Cron |
/cron |
/cron |
Sim |
|
Image Manager |
/fw-image |
/ |
Sim |
|
Data Broker |
/device/
{deviceID}
/latest
|
/device/
{deviceID}
/latest
|
Sim |
|
Data Broker |
/subscription |
/subscription |
Sim |
|
Data Broker |
/stream |
/stream |
Sim |
|
Data Broker |
/socket.io |
/socket.io |
Não |
|
X.509 Identity Management |
/x509/v1 |
/api/v1 |
Sim |
|
Kafka WS |
/kafka-ws/v1/ticket |
/v1/ticket |
Sim |
|
Kafka WS |
/kafka-ws/v1 |
/v1 |
Não |
|
InfluxDB Retriever |
/tss/v1/ |
/tss/v1/ |
Sim |
|
InfluxDB Retriever - Documentation |
/tss/v1/api-docs |
/tss/v1/api-docs |
Não |
NOTA: Alguns *endpoints* de componentes não são expostos, mas são utilizados internamente.
Além disso, o API gateway redireciona os endpoints com suas respectivas portas do componente, para que se tornem uniformes: todos eles são acessíveis pela mesma porta (o padrão é a porta TCP 8000), consulte a tabela a seguir.
Componentes |
Endpoints Originais |
Gateway Endpoint |
---|---|---|
GUI |
host:80/ |
host:8000/ |
Dashboard |
host:80/ |
host:8000/v2 |
Device Manager |
host:5000/device |
host:8000/device |
Device Manager |
host:5000/template |
host:8000/template |
Flowbroker |
host:80/ |
host:8000/flows |
Auth |
host:5000/ |
host:8000/auth |
Auth |
host:5000/revoke |
host:8000/auth/revoke |
Auth |
host:5000/user |
host:8000/auth/user |
Auth |
host:5000/pap |
host:8000/auth/pap |
History |
host:8000/ |
host:8000/history |
Data Manager |
host:3000/import |
host:8000/import |
Data Manager |
host:3000/export |
host:8000/export |
Cron |
host:5000/cron |
host:8000/cron |
Image Manager |
host:5000/ |
host:8000/fw-image |
Data Broker |
host:80/device/{{deviceID}}/latest |
host:8000/device/{deviceID}/latest |
Data Broker |
host:80/subscription |
host:8000/subscription |
Data Broker |
host:80/stream |
host:8000/stream |
Data Broker |
host:80/socket.io |
host:8000/socket.io |
X.509 Identity Management |
host:3000/api/v1 |
host:8000/x509/v1 |
Kafka WS |
host:8080/v1/ticket |
host:8000/kafka-ws/v1/ticket |
Kafka WS |
host:8080/v1/topics |
host:8000/kafka-ws/v1/topics |
InfluxDB Retriever |
host:3000/tss/v1/ |
host:8000/tss/v1/ |
InfluxDB Retriever - Documentation |
host:3000/tss/v1/api-docs |
host:8000/tss/v1/api-docs |
4.3. Bibliotecas¶
Dojot também possui várias bibliotecas usadas em seus próprios componentes. Essas bibliotecas estão abaixo listadas:
Componentes |
Linguagem |
Bibliotecas |
---|---|---|
Module |
Python |
|
Module |
Java |
|
Module |
Node JS |
|
IoT Agent |
Java |
|
IoT Agent |
Node JS |
|
Module Logger |
Node JS |
|
Helthcheck |
Node JS |
|
Microservice SDK |
Node JS |
4.4. Mensagens do Kafka¶
Essas são as mensagens enviadas pelos componentes e seus tópicos. Se você estiver desenvolvendo um novo componente interno (como um novo agente IoT), consulte a API - data-broker para verificar como receber mensagens.
Componentes |
Mensagem |
Subject |
---|---|---|
DeviceManager |
Dispositivo CRUD (Criar, Ler, Atualizar e Excluir) (Mensagens - DeviceManager) |
|
iotagent-mosca |
Atualização de dados do dispositivo (Mensagens - iotagent-mosca) |
|
auth |
Criação/remoção de Tenants (Mensagens - auth) |
|