code: protected <T> Response<T> dispatchByMethod(Request<T> request) {
  		HttpMethod method = HttpMethodUtil.retrieveMethod(request);
  
  		switch (method) {
  			case GET:
  				return doGet(request);
  			case POST:
  				return doPost(request);
  			case PUT:
  				return doPut(request);
  			case DELETE:
  				return doDelete(request);
  			default:
  				throw new CommunicationErrorException(HttpStatus.Not_Implemented);
  		}
  	}
docs: <p>
  dispatchByMethod.
  </p>
  
  @param request
  a {@link com.apitrary.api.request.Request} object.
  @param <T>
  a T object.
  @return a {@link com.apitrary.api.response.Response} object.