CRecordRegisterMicroService

This message is used to register microservices.

This message belongs to the microservice registry API.

{
  "id": "be46c53e-e544-4e76-8c44-01f8c144254c",
  "name": "REGISTER_MICRO_SERVICE",
  "isService": "false",
  "description": "Register a microservice.",
  "slots": [
    {
      "key": "1",
      "name": "MICRO_SERVICE",
      "direction": "REQUEST",
      "mandatory": "false",
      "type": "RECORD",
      "description": "The record of a single microservice to register."
    },
    {
      "key": "2",
      "name": "INSTANCE_ID",
      "direction": "REQUEST",
      "mandatory": "false",
      "type": "ID",
      "description": "Optional: The instance ID."
    },
    {
      "key": "3",
      "name": "ADDRESS",
      "direction": "REQUEST",
      "mandatory": "false",
      "type": "TARGET_ADDRESS",
      "description": "Optional: The address of the microservice instance."
    }
  ]
}

Example of use (after generating of the class CRecordRegisterMicroService):

private void registerMicroservice(@NotNull final CTargetAddress aAddressOfMicroserviceRegistry,
                                  @NotNull final IId aMicroserviceId,
                                  @NotNull final String aDescription,
                                  @NotNull final CRecord[] aAPI) throws CException
{
    // aAPI is an array of records of type CRecordDescriptionOfRecord.
    // This record type contains record IDs belonging to the API and a short description.

    final CEnvelope env = CEnvelope.forSingleTarget(aAddressOfMicroserviceRegistry);

    // data
    final CRecord recDescription = CRecordMicroService.create();
    CRecordMicroService.setId(recDescription,
                              aMicroserviceId);
    CRecordMicroService.setDescription(recDescription,
                                       aDescription);
    CRecordMicroService.setApi(recDescription,
                               aAPI);

    // create random instance ID
    final IId instanceId = CIdFactory.randomOfType(EIdType.UUID);

    // register data
    final CRecord recRequest = CRecordRegisterMicroService.create();
    CRecordRegisterMicroService.setAddress(recRequest,
                                           getAddress());
    CRecordRegisterMicroService.setInstanceId(recRequest,
                                              instanceId);
    CRecordRegisterMicroService.setMicroService(recRequest,
                                                recDescription);

    sendRequest(env,
                recRequest);
}