Создание REST-API с помощью PHP

Я создаю свой первый API, для которого, если два значения переданы, я должен получить ответ в формате JSON. Число будет передано как параметры POST. Можно использовать либо cURL, либо какой-либо метод POST.

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

У меня есть Googled для многих руководств API REST. Они были хорошими, и я приобрел некоторые знания об этом.

Но я хотел бы получить образец модели кода, чтобы я мог ссылаться на нее и строить свой собственный, и этот пример, конечно, в стандартной практике создания реального REST API.

Если вы спросите меня, что я пробовал, было бы очень весело, как новичок, все, что я мог сделать, это следующее:

$num1 = $_REQUEST['num1'];
$num2 = $_REQUEST['num2'];

$total = $num1 + $num2;
echo json_encode($total);

Конечно, это никогда нельзя назвать API, но все же. Если я дам ответ POST на это, я хочу получить ответ от REST API как JSON. Я также должен проверить его с помощью консоли REST, чтобы получить стандартный ответ.

Пожалуйста, предоставьте мне очень простой, но все же стандартный RESTful API.

Ответ 1

В вашем примере это прекрасно, как есть: его просто и работает. Единственное, что предлагает Id:

  • проверка данных POSTed
  • убедитесь, что ваш API отправляет заголовок Content-Type, чтобы сообщить клиенту ожидать ответа JSON:

    header('Content-Type: application/json');
    echo json_encode($response);
    

Кроме того, API - это то, что принимает вход и обеспечивает вывод. Его можно "переусердствовать", потому что вы делаете вещи более сложными, чем нужно.

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

Ответ 2

Попытка написать REST API с нуля - непростая задача. Есть много факторов, которые необходимо учитывать, и вам нужно будет написать много кода для обработки запросов и данных, поступающих от вызывающего абонента, проверки подлинности, поиска данных и отправки ответов.

Лучше всего использовать фреймворк, который уже имеет эту функциональность, готовый и протестированный для вас.

Некоторые предложения:

Phalcon - Создание REST API - Простота использования всех в одной структуре с огромной производительностью

Apigility - Один размер подходит для всей платформы обработки API Zend Technologies

Laravel Учебное пособие по API

и многое другое. Простой поиск в Bitbucket/Github даст вам много ресурсов для начала.