Итак, только начинаем с WordPress REST API
Я создаю свой собственный контроллер REST API (это означает, что мой собственный класс расширяет класс \ WP_REST_Controller)
Я показываю маршруты API для настраиваемого типа сообщения
Код очень длинный, поэтому я не буду вставлять сюда весь код, только важные
Итак, пока все в порядке, я могу читать данные с маршрутов и создавать данные по маршрутам.
У меня возникла проблема: у меня возникают проблемы с отправкой данных через POST-запрос для полей, схема которых представляет собой массив объектов
Итак, учитывая эту схему
$schema = array(
'$schema' => 'http://json-schema.org/draft-04/schema#',
'title' => $this->post_type,
'type' => 'object',
'properties' => array(
'id' => array(
'description' => __( 'Unique identifier for the survey cpt object.', 'wp-plugin-boilerplate' ),
'type' => 'integer',
'context' => array( 'view', 'edit', 'embed' ),
'readonly' => true,
),
'title' => array(
'description' => __( 'The title for the survey cpt object.', 'wp-plugin-boilerplate' ),
'type' => 'string',
'context' => array( 'view', 'edit', 'embed' ),
),
'description' => array(
'description' => __( 'The description for the survey cpt object', 'wp-plugin-boilerplate' ),
'type' => 'string',
'context' => array( 'view', 'edit', 'embed' )
),
'status' => array(
'description' => __( 'A named status for the survey cpt object.', 'wp-plugin-boilerplate' ),
'type' => 'string',
'enum' => array_keys( get_post_stati( array( 'internal' => false ) ) ),
'context' => array( 'view', 'edit' ),
),
'type' => array(
'description' => __( 'Type of Post for the survey cpt object.', 'wp-plugin-boilerplate' ),
'type' => 'string',
'context' => array( 'view', 'edit', 'embed' ),
'readonly' => true,
),
'fields' => array(
'description' => __( 'Set of fields for the survey cpt object.', 'wp-plugin-boilerplate' ),
'type' => 'array',
'context' => array( 'view', 'edit', 'embed' ),
'items' => array(
'type' => 'object',
'properties' => array(
'field_type' => array( 'type' => 'string' ),
'description' => array( 'type' => 'string' ),
'order' => array( 'type' => 'integer' )
)
)
)
)
);
Итак, поле fields представляет собой массив объектов,
Просто игнорируйте аутентификацию, чтобы избежать дальнейшего усложнения, в настоящее время я просто разрешил публичное создание элементов cpt через банкомат REST API.
Когда я отправляю запрос POST через почтальона вот так
Примечание. Вышеупомянутая операция будет успешной, если я удалю / не пропущу поля.
Итак, что-то не так с тем, как я определяю схему? или что-то не так с отправкой данных?
Заранее спасибо.
Изменить:
Также пробовал это
Изменить:
Подтвердите, что это проблема только для PostMan, отправка запроса POST через AXIOS работает нормально