CatgirlIntelligenceAgency/code/api
Viktor e8de468b0b
Make executor API talk GRPC (#75)
* (executor-api) Make executor API talk GRPC

The executor's REST API was very fragile and annoying to work with, lacking even basic type safety.  Migrate to use GRPC instead.  GRPC is a bit of a pain with how verbose it is, but that is probably a lesser evil.  This is a fairly straightforward change, but it's also large so a solid round of testing is needed...

The change set breaks out the GrpcStubPool previously residing in the QueryService, and makes it available to all clients.

ServiceId.name was also renamed to avoid the very dangerous clash with Enum.name().

The boilerplate needed for grpc was also extracted into a common gradle file for inclusion into the appropriate build.gradle-files.
2024-02-08 13:01:12 +01:00
..
assistant-api (assistant) Make assistant client more robust to the service going down 2024-01-13 18:29:30 +01:00
executor-api Make executor API talk GRPC (#75) 2024-02-08 13:01:12 +01:00
index-api Make executor API talk GRPC (#75) 2024-02-08 13:01:12 +01:00
process-mqapi (convert) Add basic support for Warc file sideloading 2023-12-06 18:43:55 +01:00
query-api (query-api) Make the search set identifier a string value in the API 2024-01-16 10:55:24 +01:00
readme.md (refactor) Remove features-search and update documentation 2023-10-09 15:12:30 +02:00

Clients

Core Services

These are clients for the core services, along with what models are necessary for speaking to them. They each implement the abstract client classes from service-client.

All that is necessary is to @Inject them into the constructor and then requests can be sent.

Note: If you are looking for the public API, it's handled by the api service in services-application/api-service.

MQ-API Process API

process-mqapi defines requests and inboxes for the message queue based API used for interacting with processes.

See libraries/message-queue and services-application/control-service.