2

Я разрабатываю RESTful с php. В настоящее время я начал кодирование с шаблоном проектирования MVC. В которых файлы представлений действуют как интерфейс. Интерфейс, который не отображает графический интерфейс, но имеет всю логику обработки запросов.Дизайн шаблона API RESTful при создании API с php

Теперь, мой вопрос заключается в том, как я кодирую правильно или есть лучший способ создать RESTful api в php?


Мое вдохновение основано на модели приложения JavaEE. В которых у нас есть классы Entity в качестве модели, Java-компоненты в качестве контроллеров и Remote Interface - это список методов, которые вызывается из клиента (вид представления).


Я на правой стороне?

ответ

2

Хороший пример построения API RESTful в рамках MVC на основе PHP можно найти по адресу http://www.chrisdanielson.com/2009/09/02/creating-a-php-rest-api-using-the-zend-framework/.

Этот пример расширяет класс в Zend Framework под названием Zend_Rest_Controller, который упрощает этот процесс. Вы можете посмотреть на source code, чтобы узнать, как они это делают, и если вы дадите идеи о том, как сделать свою собственную реализацию.

Чтобы ответить на ваш вопрос, вы должны иметь контроллеры, действующие как интерфейс. Поэтому, если вы отправляете POST-запрос на myapp.com/comment (где комментарий является контроллером), он знает, что вы пытаетесь добавить новый комментарий. Если вы отправляете запрос GET на тот же URL-адрес, он знает, что вам нужны все комментарии, и если вы отправляете запрос GET на myapp.com/comment/4, он знает, что вы хотите получить комментарий с идентификатором 4. Ваши взгляды должны не имеют ничего общего с внутренней функциональностью вашего API.

1

Вы можете использовать любую существующую структуру RESTful PHP MVC, например Yii или Kohana, которые очень легки и поддерживают RESTful-приложения.

Для вашего существующего приложения модель MVC заявляет, что все запросы и логическая обработка должны выполняться контроллерами, а не представлениями. Вещи, как правило, делается в одном из двух способов здесь:

(1) Контроллер имеет специальный метод для ответа на каждый тип запросов и действует по-разному, как показано на RubyOnRails (в основном в конце каждого действия контроллера)

respond_to do |format| 
    format.html 
    format.xml { render :xml => @events} 
    format.json { render :json => @events} 
end 

(2) Контроллер обнаруживает текущий запрошенный формат и изменяет всю тему/макет, например, тему JSON (все макеты/представления получают одни и те же данные). Это моя текущая реализация, и он идет, как:

$format is any of [html,json,xml] (detected from url suffix) 
$controller->layout = "$format"; 
$controller->render($viewFile, $object); 

просмотра файла в HTML Layout

<div id='model> 
    <h1><?=$object->title?></h1> 
    <p><?=$object->description?></p> 
</div> 

Просмотр файла в макете JSON

echo json_encode($object); 

Просмотр файла в макете XML

/** Loop and build XML tree */ 
-1

Я сделал кучу веб-семинаров по шаблонам проектирования фасадов API. Надеемся, что вы найдете концепции полезными независимо от базовой технологии, которую вы используете для ее реализации.Пожалуйста, можете найти его здесь

http://youtu.be/n8B-K3iJ7b4

http://youtu.be/MRxTP-rQ-S8

http://youtu.be/aJBhVm4BbCI

0

Apigility является проект на основе Zend Framework 2 предназначен Солей с целью создания REST и RPC сервисов.

https://apigility.org/

Из коробки вы дали простой способ, чтобы начать работу с MySQL и OAuth2 для проверки подлинности.

Смежные вопросы