Написание Api для Wordpress [dубликат]

Я новичок в программировании на PHP, но я разрабатываю приложение iOS, которому требуется небольшой веб-сервис. Я хотел бы сделать это RESTful, потому что я читал, что это путь.

Итак, может кто-нибудь объяснить мне, как я буду это делать?

Давайте У меня есть база данных с пользователями.

Я знаю, что с хорошим API REST, чтобы получить всех пользователей, мне нужно будет вызвать GET api/users, например.

Что я делаю Не понимаю, как это создать? Я создаю папку на моем сервере с именем api и один php-файл с именем users, который возвращает пользователей для меня? Или это php-файл с именем api, и я передаю пользователям как параметр?

Опять же, что, если я хочу получить определенного пользователя?

Я бы сделал GET api/users/23. Но я создаю новый php-файл для каждого пользователя и назову его идентификатором пользователя (23 в этом случае)? Или как мне вернуть пользователя 23 в API?

Может ли кто-нибудь прояснить это для меня?

2
задан 19 October 2016 в 10:32

3 ответа

В общем случае вы перенаправляете каждый отдельный запрос в ваш основной файл index.php (используя файл .htaccess), который затем будет вызывать «маршрутизатор».

Этот маршрутизатор увидит информацию о запросах (URL и глагол, GET, POST, ...) и вызовите соответствующую функцию, определенную для этого запроса.

Это означает, что вы можете использовать любую архитектуру, и не создавать ваши папки так же, как ваш маршрут.

Я бы рекомендовал использовать простую структуру, которая будет обрабатывать только маршрутизацию запросов, она должна дать вам все ключи, чтобы понять, как это сделать работает. Например:

http://altorouter.com/ https://lumen.laravel.com/ (больше, чем просто маршрутизатор, но все же простой)

Простейшая версия маршрутизатор будет просто условиями, обрабатывающими различные случаи:

if ($_SERVER['REQUEST_METHOD'] == "GET" && $_SERVER[REQUEST_URI] == "/users") // request is GET /users
{
    // return the list of all users
}
if ($_SERVER['REQUEST_METHOD'] == "GET" && preg_match('#/users/[0-9]+#', $_SERVER[REQUEST_URI])) // request is GET /users/[0-9]+
{
    // return a specific user
}
0
ответ дан 15 August 2018 в 15:34

Также рассмотрим использование структуры API, потому что вы столкнетесь с проблемами, которые уже были решены создателями фреймворка. F.E. посмотрите здесь: http://www.gajotres.net/best-available-php-restful-micro-frameworks/

1
ответ дан 15 August 2018 в 15:34
  • 1
    Спасибо, но я хотел бы сначала понять, как работает REST – Balázs Vincze 19 October 2016 в 10:38

Вы можете ссылаться на это,

API / user.php

<?php
include("connection.php"); //Connect to database
$response = array();
 if(isSet($_POST['token']))
 {
    $select = mysqli_query($conn,"SELECT * FROM `users`"); //Fetch all the user records
    if($select != false)
    {
        if($select != false && mysqli_num_rows($select) > 0)
        {
            while($rows = mysqli_fetch_array($select))
            {
                $response['status'] = true;
                $response['data'] = print_r($rows,true);
            }
        }
        else
        {
            $response["status"] = false;
        }
    }
    else
    {
        $response["status"] = false;
    }
}
else
{
    $response["status"] = false; //Unauthorized Access
}

echo json_encode($response);
mysqli_close($conn);

?>

API / connection.php

<?php
    $conn = mysqli_connect("HostName","UserName","password","DBName") or die("Some error occurred during connection " . mysqli_error($con));  
?>
1
ответ дан 15 August 2018 в 15:34

Другие вопросы по тегам:

Похожие вопросы: