Products_Controller::get_item_schema()
Summary
Retrieves the response’s schema, conforming to JSON Schema.
Return
(array) Item schema data.
Source
File: src/BigCommerce/Rest/Products_Controller.php
public function get_item_schema() { $schema = [ '$schema' => 'http://json-schema.org/draft-04/schema#', 'title' => 'bigcommerce_product_view', 'type' => 'object', // Base properties for every Post. 'properties' => [ 'post_id' => [ 'description' => __( 'WordPress identifier for the object.', 'bigcommerce' ), 'type' => 'integer', 'context' => [ 'view', 'edit', 'embed' ], 'readonly' => true, ], 'bigcommerce_id' => [ 'description' => __( 'BigCommerce identifier for the object.', 'bigcommerce' ), 'type' => 'integer', 'context' => [ 'view', 'edit', 'embed' ], 'readonly' => true, ], 'date' => [ 'description' => __( "The date the object was published, in the site's timezone.", 'bigcommerce' ), 'type' => 'string', 'format' => 'date-time', 'context' => [ 'view', 'edit', 'embed' ], ], 'date_gmt' => [ 'description' => __( 'The date the object was published, as GMT.', 'bigcommerce' ), 'type' => 'string', 'format' => 'date-time', 'context' => [ 'view', 'edit' ], ], /*'link' => array( 'description' => __( 'URL to the object.', 'bigcommerce' ), 'type' => 'string', 'format' => 'uri', 'context' => array( 'view', 'edit', 'embed' ), 'readonly' => true, ),*/ 'title' => [ 'description' => __( 'The title for the object.', 'bigcommerce' ), 'type' => 'string', 'context' => [ 'view', 'edit', 'embed' ], 'arg_options' => [ 'sanitize_callback' => null, // Note: sanitization implemented in self::prepare_item_for_database() 'validate_callback' => null, // Note: validation implemented in self::prepare_item_for_database() ], ], 'content' => [ 'description' => __( 'The content for the object.', 'bigcommerce' ), 'type' => 'object', 'context' => [ 'view', 'edit', 'embed' ], 'properties' => [ 'raw' => [ 'description' => __( 'The unaltered post_content', 'bigcommerce' ), 'type' => 'string', 'context' => [ 'view', 'edit', 'embed' ], ], 'formatted' => [ 'description' => __( 'The post content with the_content filters applied', 'bigcommerce' ), 'type' => 'string', 'context' => [ 'view', 'edit', 'embed' ], ], 'trimmed' => [ 'description' => __( 'The post content trimmed to 15 words', 'bigcommerce' ), 'type' => 'string', 'context' => [ 'view', 'edit', 'embed' ], ], ], ], 'image' => [ 'description' => __( 'The featured image of the object', 'bigcommerce' ), 'type' => 'object', 'context' => [ 'view', 'edit', 'embed' ], 'properties' => $this->get_image_schema(), ], 'sku' => [ 'description' => __( 'The SKU for the product.', 'bigcommerce' ), 'type' => 'string', 'context' => [ 'view', 'edit', 'embed' ], ], 'price_range' => [ 'description' => __( 'The price for the product.', 'bigcommerce' ), 'type' => 'string', 'context' => [ 'view', 'edit', 'embed' ], ], ], ]; foreach ( $this->taxonomy_params() as $taxonomy ) { $schema['properties'][ $taxonomy ] = [ 'description' => sprintf( __( 'A term from the %s taxonomy', 'bigcommerce' ), $taxonomy ), 'type' => 'array', 'items' => [ 'type' => 'object', 'context' => [ 'view', 'edit', 'embed' ], 'properties' => [ 'id' => __( 'The term ID', 'bigcommerce' ), 'label' => __( 'The term label', 'bigcommerce' ), 'slug' => __( 'The term slug', 'bigcommerce' ), ], ], ]; } return $this->add_additional_fields_schema( $schema ); }