Loads request micro services (handling incoming requests).

    :type plugin_path: list[str]
    :type plugins: list[str]
    :type internal_attributes: dict[string, dict[str, str | list[str]]]
    :type base_url: str
    :rtype satosa.micro_service.service_base.RequestMicroService

    :param plugin_path: Path to the plugin directory
    :param plugins: A list with the name of the plugin files
    :param: base_url: base url of the SATOSA server
    :return: Request micro service

def load_request_microservices(plugin_path, plugins, internal_attributes, base_url):
    """
    Loads request micro services (handling incoming requests).

    :type plugin_path: list[str]
    :type plugins: list[str]
    :type internal_attributes: dict[string, dict[str, str | list[str]]]
    :type base_url: str
    :rtype satosa.micro_service.service_base.RequestMicroService

    :param plugin_path: Path to the plugin directory
    :param plugins: A list with the name of the plugin files
    :param: base_url: base url of the SATOSA server
    :return: Request micro service
    """
    request_services = _load_microservices(plugin_path, plugins, _request_micro_service_filter, internal_attributes,
                                           base_url)
    logger.info("Loaded request micro services: %s" % [type(k).__name__ for k in request_services])
    return request_services