@Override
  public void execute(final RestServiceRequest rsr, Map<String, String> params) throws Exception {
    if (params.containsKey(RestServices.PARAM_ABOUT)) {
      serveDescription(rsr);
    } else {
      Map<String, Object> args = new HashMap<String, Object>();
      IMendixObject inputObject = parseInputData(rsr, params);

      if (inputObject != null) args.put(argName, inputObject);

      if (isReturnTypePrimitive)
        rsr.setResponseContentType(
            ResponseType.PLAIN); // default, but might be overriden by the executing mf
      else if (isFileTarget) rsr.setResponseContentType(ResponseType.BINARY);

      Object result = Core.execute(rsr.getContext(), microflowname, args);
      writeOutputData(rsr, result);
    }
  }