4. Componentes e APIs

4.1. Componentes

Tabela 4.1 Componentes
Componentes
Repositório
/ Site principal
Documentação
dos componentes
API de componentes
Documentação

MongoDB

MongoDB site

MongoDB doc.

Postgres

PostgreSQL site

PostgreSQL doc.

Kong API gateway
(Community Edition)

Kong site

Kong doc.

Redis

Redis site

Redis doc.

Zookeeper

Zookeeper site

Zookeeper doc.

Kafka

Kafka site

Kafka doc.

VerneMQ

VerneMQ site

VerneMQ doc.

Leshan

Leshan site

Leshan doc.

Auth

GitHub - auth

API - auth

Dojot Kong

GitHub - Dojot Kong

History

GitHub - history

API - history

Device Manager

GitHub - DeviceManager

API - DeviceManager

Image Manager

GitHub - image-manager

API - image-manager

GUI

GitHub - GUI

GUI - V2

GitHub - V2

Flowbroker

GitHub - flowbroker

API - flowbroker

Databroker

GitHub - data-broker

API - data-broker

IotAgent VerneMQ
(MQTT) - Padrão

GitHub - iotagent-vernemq

IotAgent Mosca
(MQTT) - Legado

GitHub - iotagent-mosca

IotAgent Leshan
(LWM2M)

GitHub - iotagent-leshan

Data Manager

GitHub - Data Manager

API - Data Manager

Cron

GitHub - Cron

API - Cron

X.509 Identity Management

GitHub - x509-identity-mgmt

API - x509-identity-mgmt

Kafka2Ftp

GitHub - Kafka2Ftp

Kafka WS

GitHub - Kafka WS

API - kafka-ws

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.

Tabela 4.2 Endpoints expostos
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

API - DeviceManager

Sim

Device Manager

/template

/template

API - DeviceManager

Sim

Flowbroker

/flows

/

API - flowbroker

Sim

Auth

/auth

/

API - auth

Não

Auth

/auth/revoke

/revoke

API - auth

Não

Auth

/auth/user

/user

API - auth

Sim

Auth

/auth/pap

/pap

API - auth

Sim

History

/history

/

API - history

Sim

Data Manager

/import

/import

API - Data Manager

Sim

Data Manager

/export

/export

API - Data Manager

Sim

Cron

/cron

/cron

API - Cron

Sim

Image Manager

/fw-image

/

API - image-manager

Sim

Data Broker

/device/
{deviceID}
/latest
/device/
{deviceID}
/latest

API - data-broker

Sim

Data Broker

/subscription

/subscription

API - data-broker

Sim

Data Broker

/stream

/stream

API - data-broker

Sim

Data Broker

/socket.io

/socket.io

API - data-broker

Não

X.509 Identity Management

/x509/v1

/api/v1

API - x509-identity-mgmt

Sim

Kafka WS

/kafka-ws/v1/ticket

/v1/ticket

Sim

Kafka WS

/kafka-ws/v1

/v1

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.

Tabela 4.3 Endpoints originais para o API gateway

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

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.

Tabela 4.5 Endpoints Originais

Componentes

Mensagem

Subject

DeviceManager

Dispositivo CRUD (Criar, Ler, Atualizar e Excluir) (Mensagens - DeviceManager)

dojot.device-manager.device

iotagent-mosca

Atualização de dados do dispositivo (Mensagens - iotagent-mosca)

device-data

auth

Criação/remoção de Tenants (Mensagens - auth)

dojot.tenancy