58 lines
2.4 KiB
ReStructuredText
58 lines
2.4 KiB
ReStructuredText
.. _api_service:
|
|
|
|
Interaction using API service
|
|
=============================
|
|
|
|
Elements involved
|
|
-----------------
|
|
|
|
This implementation of the Webhook To Fedora Messaging service project requires
|
|
the involvement of the following entities.
|
|
|
|
Database service
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
1. The database service is expected to allow for creating, reading, updating
|
|
and deleting webhook forwarding requests per user.
|
|
2. It is recommended to use an structured database management service like
|
|
Postgres with an asynchronous means of communication.
|
|
3. The deployment is suggested to be done either in the same device as the API
|
|
service or at least in the same network.
|
|
4. The service should not be exposed on the public internet and any interactions
|
|
with the service should be resolved internally.
|
|
|
|
API service
|
|
^^^^^^^^^^^
|
|
|
|
1. The API service is expected to manage requests for creating messages on the
|
|
Fedora Messaging bus for the interacting users.
|
|
2. It is recommended to use an asynchronous web framework like FastAPI or
|
|
Litestar with object relationship model support.
|
|
3. The deployment is suggested to be done either in the same device as the
|
|
database service or at least in the same network.
|
|
4. The service should be exposed on the public internet and needs to be behind
|
|
Fedora Account System authentication check.
|
|
|
|
API documentation
|
|
^^^^^^^^^^^^^^^^^
|
|
|
|
1. The API documentation is expected to elucidate how a contributor can
|
|
leverage the API service to send messages on the bus.
|
|
2. It is recommended to let the choice be dependent on the API service
|
|
technological stack for automation and convenience.
|
|
3. The deployment is suggested to be done either in the same device as the API
|
|
service or at least in the same network.
|
|
4. The service should be exposed on the public internet but needs not be behind
|
|
a Fedora Account System authentication check.
|
|
|
|
Message producer
|
|
^^^^^^^^^^^^^^^^
|
|
|
|
1. The message producer is expected to interact with the Fedora Messaging bus
|
|
by sending messages requested by the API service.
|
|
2. The Fedora Messaging library is a good fit for interacting with the service
|
|
but asynchronous processing is greatly advised.
|
|
3. The deployment is suggested to be done either in the same device as the API
|
|
service or at least in the same network.
|
|
4. The service should not be exposed on the public internet and any interactions
|
|
with the service should be resolved internally.
|