code: def create_gw_response(app, wsgi_env):
      
      response = {}
      buf = []
      result = []
  
      def start_response(status, headers, exc_info=None):
          result[:] = [status, headers]
          return buf.append
  
      appr = app(wsgi_env, start_response)
      close_func = getattr(appr, 'close', None)
      try:
          buf.extend(list(appr))
      finally:
          close_func and close_func()
  
      response['body'] = ''.join(buf)
      response['statusCode'] = result[0].split(' ', 1)[0]
      response['headers'] = {}
  
      for k, v in result[1]:
          response['headers'][k] = v
      if 'Content-Length' not in response['headers']:
          response['headers']['Content-Length'] = str(len(response['body']))
      if 'Content-Type' not in response['headers']:
          response['headers']['Content-Type'] = 'text/plain'
      return response
docs: Create an api gw response from a wsgi app and environ.