debugHandler function

Future<Response> debugHandler (Request req)

Request handler which shows out the request parameters to the client.

This request handler is useful for debugging. It generates a response that shows what path, query and POST parameters were in the request.

Note: the HTTP response is text, rather than HTML. This makes it easier to read/parse when testing without a Web browser (e.g. from the command line using curl).

Implementation

Future<Response> debugHandler(Request req) async {
  final buf = new StringBuffer("HTTP method: ${req.method}\n\n");

  var hasParams = false;
  for (var key in req.pathParams.keys) {
    for (var value in req.pathParams.values(key, raw: true)) {
      buf.write('Path parameter: $key = "$value"\n');
      hasParams = true;
    }
  }
  if (hasParams) {
    buf.write("\n");
  }

  hasParams = false;
  for (var key in req.queryParams.keys) {
    for (var value in req.queryParams.values(key, raw: true)) {
      buf.write('Query parameter: $key = "$value"\n');
      hasParams = true;
    }
  }
  if (hasParams) {
    buf.write("\n");
  }

  hasParams = false;
  if (req.postParams != null) {
    for (var key in req.postParams.keys) {
      for (var value in req.postParams.values(key, raw: true)) {
        buf.write('POST parameter: $key = "$value"\n');
        hasParams = true;
      }
    }
  }
  if (hasParams) {
    buf.write("\n");
  }

  buf.write("Time: ${new DateTime.now().toString()}");

  final resp = new ResponseBuffered(ContentType.text)..write(buf.toString());
  return resp;
}