Вот подробности моей настройки:
Express.js API работает на http://localhost:3456/api/items:
GET /api/ Конечная точка items возвращает список предметов.
Конечная точка POST /api/items добавляет новые элементы.
WordPress REST API используется для получения данных из Express.js и их отображения в теме.
Код, используемый в WordPress:
Код: Выделить всё
// Add WordPress REST API to connect with Express.js API
add_action('rest_api_init', function () {
register_rest_route('vehica/v1', '/items', [
'methods' => 'GET',
'callback' => 'vehica_get_items',
'permission_callback' => '__return_true',
]);
});
function vehica_get_items(WP_REST_Request $request) {
$api_url = 'http://localhost:3456/api/items';
$response = wp_remote_get($api_url);
if (is_wp_error($response)) {
return new WP_Error('api_error', 'Failed to fetch items from API', ['status' => 500]);
}
$body = wp_remote_retrieve_body($response);
return rest_ensure_response(json_decode($body, true));
}
Данные, полученные из API, не отображаются на веб-сайте, хотя я пытался получить их с помощью PHP и JavaScript.В консоли браузера и журналах не появляются явные сообщения об ошибках.
Действия, которые я предпринял:
Проверил, что API работает корректно с помощью Postman.
Проверено, если vehica_get_items — это вызывается через REST API по адресу http://example.com/wp-json/vehica/v1/items.
Добавлены заголовки CORS в API Express.js, чтобы гарантировать разрешение запросов.
Проверено Журналы ошибок сервера WordPress и API.
Вопросы:
Что может быть не так с моей настройкой?
Как я могу гарантировать, что данные из API правильно отображаются на веб-сайте ?
получить решение моей проблемы
Подробнее здесь: https://stackoverflow.com/questions/792 ... template-2
Мобильная версия