public static function getInstance()
 {
     if (null === self::$instance) {
         self::$instance = new self();
     }
     return self::$instance;
 }
 public function __get($key)
 {
     if ($key === 'links') {
         require_once dirname(__FILE__) . '/class.json-api-links.php';
         return WPCOM_JSON_API_Links::getInstance();
     }
     return $this->post->{$key};
 }
 function __construct($args)
 {
     $defaults = array('in_testing' => false, 'allowed_if_flagged' => false, 'allowed_if_red_flagged' => false, 'description' => '', 'group' => '', 'method' => 'GET', 'path' => '/', 'min_version' => '0', 'max_version' => WPCOM_JSON_API__CURRENT_VERSION, 'force' => '', 'deprecated' => false, 'new_version' => WPCOM_JSON_API__CURRENT_VERSION, 'jp_disabled' => false, 'path_labels' => array(), 'request_format' => array(), 'response_format' => array(), 'query_parameters' => array(), 'version' => 'v1', 'example_request' => '', 'example_request_data' => '', 'example_response' => '', 'required_scope' => '', 'pass_wpcom_user_details' => false, 'custom_fields_filtering' => false, 'allow_cross_origin_request' => false, 'allow_unauthorized_request' => false, 'allow_jetpack_site_auth' => false);
     $args = wp_parse_args($args, $defaults);
     $this->in_testing = $args['in_testing'];
     $this->allowed_if_flagged = $args['allowed_if_flagged'];
     $this->allowed_if_red_flagged = $args['allowed_if_red_flagged'];
     $this->description = $args['description'];
     $this->group = $args['group'];
     $this->stat = $args['stat'];
     $this->force = $args['force'];
     $this->jp_disabled = $args['jp_disabled'];
     $this->method = $args['method'];
     $this->path = $args['path'];
     $this->path_labels = $args['path_labels'];
     $this->min_version = $args['min_version'];
     $this->max_version = $args['max_version'];
     $this->deprecated = $args['deprecated'];
     $this->new_version = $args['new_version'];
     $this->pass_wpcom_user_details = $args['pass_wpcom_user_details'];
     $this->custom_fields_filtering = (bool) $args['custom_fields_filtering'];
     $this->allow_cross_origin_request = (bool) $args['allow_cross_origin_request'];
     $this->allow_unauthorized_request = (bool) $args['allow_unauthorized_request'];
     $this->allow_jetpack_site_auth = (bool) $args['allow_jetpack_site_auth'];
     $this->version = $args['version'];
     $this->required_scope = $args['required_scope'];
     if ($this->request_format) {
         $this->request_format = array_filter(array_merge($this->request_format, $args['request_format']));
     } else {
         $this->request_format = $args['request_format'];
     }
     if ($this->response_format) {
         $this->response_format = array_filter(array_merge($this->response_format, $args['response_format']));
     } else {
         $this->response_format = $args['response_format'];
     }
     if (false === $args['query_parameters']) {
         $this->query = array();
     } elseif (is_array($args['query_parameters'])) {
         $this->query = array_filter(array_merge($this->query, $args['query_parameters']));
     }
     $this->api = WPCOM_JSON_API::init();
     // Auto-add to WPCOM_JSON_API
     $this->links = WPCOM_JSON_API_Links::getInstance();
     /** Example Request/Response ******************************************/
     // Examples for endpoint documentation request
     $this->example_request = $args['example_request'];
     $this->example_request_data = $args['example_request_data'];
     $this->example_response = $args['example_response'];
     $this->api->add($this);
 }