code: def _extract_methods(self):
          
          service = self._service
          all_urls = set()
          urls_with_options = set()
          if not service.http:
              return
          for rule in service.http.rules:
              http_method, url = _detect_pattern_option(rule)
              if not url or not http_method or not rule.selector:
                  _logger.error(u'invalid HTTP binding encountered')
                  continue
  
              # Obtain the method info
              method_info = self._get_or_create_method_info(rule.selector)
              if rule.body:
                  method_info.body_field_path = rule.body
              if not self._register(http_method, url, method_info):
                  continue  # detected an invalid url
              all_urls.add(url)
  
              if http_method == self._OPTIONS:
                  urls_with_options.add(url)
  
          self._add_cors_options_selectors(all_urls - urls_with_options)
          self._update_usage()
          self._update_system_parameters()
docs: Obtains the methods used in the service.