code: func valueDescriptorByNameHandler(w http.ResponseWriter, r *http.Request) {
  	defer r.Body.Close()
  
  	vars := mux.Vars(r)
  	name, err := url.QueryUnescape(vars["name"])
  
  	// Problems unescaping
  	if err != nil {
  		http.Error(w, err.Error(), http.StatusBadRequest)
  		LoggingClient.Error("Error unescaping the value descriptor name: " + err.Error())
  		return
  	}
  
  	switch r.Method {
  	case http.MethodGet:
  		v, err := dbClient.ValueDescriptorByName(name)
  		if err != nil {
  			switch err := err.(type) {
  			case *types.ErrServiceClient:
  				http.Error(w, err.Error(), err.StatusCode)
  			default:
  				http.Error(w, err.Error(), http.StatusInternalServerError)
  			}
  			LoggingClient.Error(err.Error())
  			return
  		}
  		encode(v, w)
  	case http.MethodDelete:
  		if err = deleteValueDescriptorByName(name); err != nil {
  			switch err.(type) {
  			case *errors.ErrDbNotFound:
  				http.Error(w, err.Error(), http.StatusNotFound)
  				return
  			case *errors.ErrValueDescriptorInvalid:
  				http.Error(w, err.Error(), http.StatusBadRequest)
  				return
  			case *errors.ErrValueDescriptorInUse:
  				http.Error(w, "Data integrity issue. Value Descriptor still in use by readings", http.StatusConflict)
  				return
  			default:
  				http.Error(w, err.Error(), http.StatusInternalServerError)
  				return
  			}
  		}
  
  		w.Header().Set("Content-Type", "application/json")
  		w.WriteHeader(http.StatusOK)
  		w.Write([]byte("true"))
  	}
  }
docs: // Value descriptors based on name
  // api/v1/valuedescriptor/name/{name}