docs: def request(self, method, uri, **kwargs):
          """Perform a WVA web services request and return the decoded value if successful
  
          :param method: The HTTP method to use when making this request
          :param uri: The path past /ws to request.  That is, the path requested for
              a relpath of `a/b/c` would be `/ws/a/b/c`.
          :raises WVAHttpError: if a response is received but the success is non-success
          :raises WVAHttpSocketError: if there was an error making the HTTP request.  That is,
              the request was unable to make it to the WVA for some reason.
          :return: If the response content type is JSON, it will be deserialized and a
              python dictionary containing the information from the json document will
              be returned.  If not a JSON response, a unicode string of the response
              text will be returned.
          """
          response = self.raw_request(method, uri, **kwargs)
          if response.status_code != 200:
              exception_class = HTTP_STATUS_EXCEPTION_MAP.get(response.status_code, WVAHttpError)
              raise exception_class(response)
  
          if response.headers.get("content-type") == "application/json":
              return json.loads(response.text)
          else:
              return response.text