4. Componentes e APIs¶
4.1. Components¶
Componentes
|
Repositório
/ Site principal
|
Documentação
para 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. | |
Auth | GitHub - auth | Auth doc. | API - auth |
History | GitHub - history | API - history | |
Device Manager | GitHub - DeviceManager | DeviceManager doc. | API - DeviceManager |
Image Manager | GitHub - image-manager | API - image-manager | |
GUI | GitHub - GUI | ||
Flowbroker | GitHub - flowbroker | API - flowbroker | |
Databroker | GitHub - data-broker | API - data-broker | |
Iotagent Mosca
(MQTT)
|
GitHub - iotagent-mosca | ||
EJBCA-REST | GitHub - EJBCA-REST | API - EJBCA-REST | |
Data Manager | GitHub - Data Manager | API - Data Manager | |
Cron | GitHub - Cron | API - Cron |
4.2. APIS expostas (API Gateway)¶
O API gateway usado na dojot reencaminha alguns dos endpoints dos componentes. A tabela a seguir mostra quais endpoint exposto pelo API gateway são mapeado para quais endpoint dos componentes, e suas endpoint componentes documentações usado via API Gateway. Veja mais como usar as APIS em Using API interface.
Componentes
|
Endpoint esposto
pelo API gateway
|
Componentes
Endpoint
|
Componentes
Endpoint
Documentação
|
Precisa de
Autenticação
|
---|---|---|---|---|
GUI | / | / | 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 | Não | |
Auth | /auth/user | /user | API - auth | Sim |
Auth | /auth/pap | /pap | API - auth | Sim |
History | /history | / | API - history | Sim |
EJBCA REST | /sign | /sign | API - EJBCA-REST | Sim |
EJBCA REST | /ca | /ca | API - EJBCA-REST | Sim |
EJBCA REST | /user | /user | API - EJBCA-REST | 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
|
Sim | |
Data Broker | /subscription | /subscription | Sim | |
Data Broker | /stream | /stream | Sim | |
Data Broker | /socket.io | /socket.io | API - data-broker | Não |
NOTA: Alguns endpoints não são expostos, mas são utilizados internamente.
Além disso, o gateway da API redireciona os endpoints com suas repectivas 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/ |
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/auth/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 |
EJBCA REST | host:5583/sign | host:8000/sign |
EJBCA REST | host:5583/ca | host:8000/ca |
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 |
4.3. Mensagens do Kafka¶
Essas são as mensagens enviadas pelos componentes e seus assuntos. Se você estiver desenvolvendo um novo componente interno (como um novo agente de IoT),consulte API - data-broker para verificar como receber mensagens enviadas por outros componentes na dojot.
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 |