pub async fn request_endpoint<'a, T, F>(
    json: &'a T,
    endpoint: &'a Endpoint,
    variant: EndpointVariant,
    cb: F
) -> Result<(), Box<dyn Error>>where
    T: Serialize,
    F: FnMut(Result<String, Box<dyn Error>>),