code: @Override
      public T save(T document) {
          try {
              String response = restClient.postForObject(format("%s/save/%s", baseUrl, pojoClassToCollection(document.getClass())), document, String.class);
              Map responseMap = new ObjectMapper().readValue(response, Map.class);
              writeField(document, "id", responseMap.get("result"));
              return document;
          } catch (IOException e) {
              throw new RuntimeException(e);
          }
      }
docs: Overridden