code: def load(kls, url, getter=None, parser=None, url_load_hook=None, sep=consts.private.SCOPE_SEPARATOR, prim=None, mime_codec=None, resolver=None):
          
  
          logger.info('load with [{0}]'.format(url))
  
          url = utils.normalize_url(url)
          app = kls(url, url_load_hook=url_load_hook, sep=sep, prim=prim, mime_codec=mime_codec, resolver=resolver)
          app.__raw, app.__version = app.load_obj(url, getter=getter, parser=parser)
          if app.__version not in ['1.2', '2.0']:
              raise NotImplementedError('Unsupported Version: {0}'.format(self.__version))
  
          # update scheme if any
          p = six.moves.urllib.parse.urlparse(url)
          if p.scheme:
              app.schemes.append(p.scheme)
  
          return app
docs: load json as a raw App
  
          :param str url: url of path of Swagger API definition
          :param getter: customized Getter
          :type getter: sub class/instance of Getter
          :param parser: the parser to parse the loaded json.
          :type parser: pyswagger.base.Context
          :param dict app_cache: the cache shared by related App
          :param func url_load_hook: hook to patch the url to load json
          :param str sep: scope-separater used in this App
          :param prim pyswager.primitives.Primitive: factory for primitives in Swagger
          :param mime_codec pyswagger.primitives.MimeCodec: MIME codec
          :param resolver: pyswagger.resolve.Resolver: customized resolver used as default when none is provided when resolving
          :return: the created App object
          :rtype: App
          :raises ValueError: if url is wrong
          :raises NotImplementedError: the swagger version is not supported.