WordPress как на ладони
Новые WordPress шаблоны Хостинг, VPS/VDS и отдельные сервера только на SSD дисках. 7 дней бесплатного тестирования.

Маршруты WP из коробки

В этом разделе находится справочник по REST API в WordPress - это базовые маршруты, который WordPress поддерживает из коробки. Здесь содержатся сведения о конечных точках, доступных через API, их параметрах, формате ответа и т.д.

Список базовых маршрутов WP

Ресурс Маршрут (URL)
Записи (posts) /wp-json/wp/v2/posts
Ревизии (post Revisions) /wp-json/wp/v2/revisions
Категории (categories) /wp-json/wp/v2/categories
Теги (tags) /wp-json/wp/v2/tags
Страницы (pages) /wp-json/wp/v2/pages
Комментарии (comments) /wp-json/wp/v2/comments
Таксономии (taxonomies) /wp-json/wp/v2/taxonomies
Медиа (media) /wp-json/wp/v2/media
Пользователи (users) /wp-json/wp/v2/users
Типы записей (post Types) /wp-json/wp/v2/types
Статусы записей (post Statuses) /wp-json/wp/v2/statuses
Настройки (settings) /wp-json/wp/v2/settings

Документация по REST API

REST API WordPress предоставляет документацию по самому себе. Она позволят увидеть возможности маршрута: схему маршрута, какие в нем есть эндпоинты, какие параметры может принимать каждый эндпоинт.

Общую доку по всему REST API можно получить GET запросом по основному (корневому) маршруту /wp-json/. Доку по отдельному маршруту можно получить отправив на него OPTIONS запрос.

Пример

Демо-установка REST API (для тестирования) доступна по ссылке: https://demo.wp-api.org/wp-json/. Указанный сайт предоставляет данные доступные для чтения.

Например, зайдем на сайт apirequest.io и отправим OPTIONS запрос на маршрут (URL) http://demo.wp-api.org/wp-json/wp/v2/categories/1. В ответ получим документацию по этому маршруту:

{
    "namespace": "wp/v2",
    "methods": [
        "GET",
        "POST",
        "PUT",
        "PATCH",
        "DELETE"
    ],
    "endpoints": [
        {
            "methods": [
                "GET"
            ],
            "args": {
                "id": {
                    "required": false,
                    "description": "Уникальный идентификатор элемента.",
                    "type": "integer"
                },
                "context": {
                    "required": false,
                    "default": "view",
                    "enum": [
                        "view",
                        "embed",
                        "edit"
                    ],
                    "description": "Рамки в которых сделан запрос, определяют поля в ответе.",
                    "type": "string"
                }
            }
        },
        {
            "methods": [
                "POST",
                "PUT",
                "PATCH"
            ],
            "args": {
                "id": {
                    "required": false,
                    "description": "Уникальный идентификатор элемента.",
                    "type": "integer"
                },
                "description": {
                    "required": false,
                    "description": "HTML описание элемента.",
                    "type": "string"
                },
                "name": {
                    "required": false,
                    "description": "HTML название элемента.",
                    "type": "string"
                },
                "slug": {
                    "required": false,
                    "description": "Буквенно-цифровой идентификатор элемента уникальный для его типа.",
                    "type": "string"
                },
                "parent": {
                    "required": false,
                    "description": "ID элемента родителя.",
                    "type": "integer"
                },
                "meta": {
                    "required": false,
                    "description": "Мета поля.",
                    "type": "object"
                }
            }
        },
        {
            "methods": [
                "DELETE"
            ],
            "args": {
                "id": {
                    "required": false,
                    "description": "Уникальный идентификатор элемента.",
                    "type": "integer"
                },
                "force": {
                    "required": false,
                    "default": false,
                    "description": "Должно быть истинно, так как элементы не поддерживают перемещение в корзину.",
                    "type": "boolean"
                }
            }
        }
    ],
    "schema": {
        "$schema": "http://json-schema.org/draft-04/schema#",
        "title": "category",
        "type": "object",
        "properties": {
            "id": {
                "description": "Уникальный идентификатор элемента.",
                "type": "integer",
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "readonly": true
            },
            "count": {
                "description": "Число опубликованных записей элемента.",
                "type": "integer",
                "context": [
                    "view",
                    "edit"
                ],
                "readonly": true
            },
            "description": {
                "description": "HTML описание элемента.",
                "type": "string",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "link": {
                "description": "URL элемента.",
                "type": "string",
                "format": "uri",
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "readonly": true
            },
            "name": {
                "description": "HTML название элемента.",
                "type": "string",
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "required": true
            },
            "slug": {
                "description": "Буквенно-цифровой идентификатор элемента уникальный для его типа.",
                "type": "string",
                "context": [
                    "view",
                    "embed",
                    "edit"
                ]
            },
            "taxonomy": {
                "description": "Тип атрибуции элемента.",
                "type": "string",
                "enum": [
                    "category",
                    "post_tag",
                    "nav_menu",
                    "link_category",
                    "post_format"
                ],
                "context": [
                    "view",
                    "embed",
                    "edit"
                ],
                "readonly": true
            },
            "parent": {
                "description": "ID элемента родителя.",
                "type": "integer",
                "context": [
                    "view",
                    "edit"
                ]
            },
            "meta": {
                "description": "Мета поля.",
                "type": "object",
                "context": [
                    "view",
                    "edit"
                ],
                "properties": []
            }
        }
    }
}

Некоторые термины касательно маршрутов

  • Контекст — показывает какие поля объекта вернуться в ответе при создании запроса в указанном контексте. Например, при обновлении или создании рубрики вернуться поля соответствующие контексту edit.
Комментариев нет
    Здравствуйте, !     Войти . Зарегистрироваться