WordPress.org

Make WordPress Core

Changeset 48173


Ignore:
Timestamp:
06/26/2020 12:44:44 AM (4 months ago)
Author:
TimothyBlynJacobs
Message:

REST API: Introduce Block Types endpoint.

This endpoint allows a user to retrieve the block type definition for all server-side registered block types.

Props spacedmonkey, aduth, gziolo, ocean90, TimothyBlynJacobs.
Fixes #47620.

Location:
trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/wp-includes/class-wp-block-styles-registry.php

    r46601 r48173  
    3535     * @since 5.3.0
    3636     *
    37      * @param string $block_name       Block type name including namespace.
     37     * @param string $block_name       Block ty name including namespace.
    3838     * @param array  $style_properties Array containing the properties of the style name, label,
    3939     *                                 style (name of the stylesheet to be enqueued),
  • trunk/src/wp-includes/rest-api.php

    r48171 r48173  
    272272    // Block Renderer.
    273273    $controller = new WP_REST_Block_Renderer_Controller;
     274    $controller->register_routes();
     275
     276    // Block Types.
     277    $controller = new WP_REST_Block_Types_Controller();
    274278    $controller->register_routes();
    275279
  • trunk/src/wp-settings.php

    r48159 r48173  
    254254require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-search-controller.php';
    255255require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-blocks-controller.php';
     256require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-block-types-controller.php';
    256257require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-block-renderer-controller.php';
    257258require ABSPATH . WPINC . '/rest-api/endpoints/class-wp-rest-settings-controller.php';
  • trunk/tests/phpunit/tests/rest-api/rest-schema-setup.php

    r48069 r48173  
    122122            '/wp/v2/search',
    123123            '/wp/v2/block-renderer/(?P<name>[a-z0-9-]+/[a-z0-9-]+)',
     124            '/wp/v2/block-types',
     125            '/wp/v2/block-types/(?P<namespace>[a-zA-Z0-9_-]+)',
     126            '/wp/v2/block-types/(?P<namespace>[a-zA-Z0-9_-]+)/(?P<name>[a-zA-Z0-9_-]+)',
    124127            '/wp/v2/settings',
    125128            '/wp/v2/themes',
  • trunk/tests/qunit/fixtures/wp-api-generated.js

    r48121 r48173  
    44324432                            "description": "ID of the post context.",
    44334433                            "type": "integer"
     4434                        }
     4435                    }
     4436                }
     4437            ]
     4438        },
     4439        "/wp/v2/block-types": {
     4440            "namespace": "wp/v2",
     4441            "methods": [
     4442                "GET"
     4443            ],
     4444            "endpoints": [
     4445                {
     4446                    "methods": [
     4447                        "GET"
     4448                    ],
     4449                    "args": {
     4450                        "context": {
     4451                            "required": false,
     4452                            "default": "view",
     4453                            "enum": [
     4454                                "view",
     4455                                "embed",
     4456                                "edit"
     4457                            ],
     4458                            "description": "Scope under which the request is made; determines fields present in response.",
     4459                            "type": "string"
     4460                        },
     4461                        "namespace": {
     4462                            "required": false,
     4463                            "description": "Block namespace.",
     4464                            "type": "string"
     4465                        }
     4466                    }
     4467                }
     4468            ],
     4469            "_links": {
     4470                "self": [
     4471                    {
     4472                        "href": "http://example.org/index.php?rest_route=/wp/v2/block-types"
     4473                    }
     4474                ]
     4475            }
     4476        },
     4477        "/wp/v2/block-types/(?P<namespace>[a-zA-Z0-9_-]+)": {
     4478            "namespace": "wp/v2",
     4479            "methods": [
     4480                "GET"
     4481            ],
     4482            "endpoints": [
     4483                {
     4484                    "methods": [
     4485                        "GET"
     4486                    ],
     4487                    "args": {
     4488                        "context": {
     4489                            "required": false,
     4490                            "default": "view",
     4491                            "enum": [
     4492                                "view",
     4493                                "embed",
     4494                                "edit"
     4495                            ],
     4496                            "description": "Scope under which the request is made; determines fields present in response.",
     4497                            "type": "string"
     4498                        },
     4499                        "namespace": {
     4500                            "required": false,
     4501                            "description": "Block namespace.",
     4502                            "type": "string"
     4503                        }
     4504                    }
     4505                }
     4506            ]
     4507        },
     4508        "/wp/v2/block-types/(?P<namespace>[a-zA-Z0-9_-]+)/(?P<name>[a-zA-Z0-9_-]+)": {
     4509            "namespace": "wp/v2",
     4510            "methods": [
     4511                "GET"
     4512            ],
     4513            "endpoints": [
     4514                {
     4515                    "methods": [
     4516                        "GET"
     4517                    ],
     4518                    "args": {
     4519                        "name": {
     4520                            "required": false,
     4521                            "description": "Block name",
     4522                            "type": "string"
     4523                        },
     4524                        "namespace": {
     4525                            "required": false,
     4526                            "description": "Block namespace",
     4527                            "type": "string"
     4528                        },
     4529                        "context": {
     4530                            "required": false,
     4531                            "default": "view",
     4532                            "enum": [
     4533                                "view",
     4534                                "embed",
     4535                                "edit"
     4536                            ],
     4537                            "description": "Scope under which the request is made; determines fields present in response.",
     4538                            "type": "string"
    44344539                        }
    44354540                    }
Note: See TracChangeset for help on using the changeset viewer.