2016-12-02 7 views
2

Мы начинаем новый проект, который будет использовать сервисы RESTful для общения с веб-клиентами (AngularJS) и мобильными платформами (Android и iOS).Лучший способ создания сервисов RESTful с использованием Zend Framework 3

Идея состоит в том, чтобы скрыть логику бизнеса внутри служб RESTful и использовать тот же код для веб-клиента и мобильных платформ.

Наш сервер строится на PHP с использованием Zend Framework 3 (я новичок в структуре). Приложение будет иметь десяток объектов с сотнями услуг.

В Интернете я заметил, что ZF2 имеет модуль REST, но я не могу найти его для ZF3 (по крайней мере, в документации).

Некоторые вопросы у меня есть:

  • Каков наилучший путь для обеспечения RESTful услуг с использованием ZF3?
  • Должен ли я установить модуль ZF? Есть ли что-то готовое к использованию, которое поставляется с ZF3?
  • Должен ли я создать модуль в коде только для моих услуг? Остальные модули вызывают этот модуль REST для бизнес-логики?
+1

Вы можете легко работать с [apigility] (https://apigility.org/), который основан на ZendFramework и разрешает уже всю проблему протокола RESTfull, проверку запросов, формат ответов – Dragos

+0

Это не вопрос для stackoverflow, это скорее тема обсуждения. – Dragos

+1

Большинство проектов, над которыми я работал, будут поддерживать бизнес-логику в отдельных ZF-модулях, которые будут предоставлять данные через службы, а затем запрашивать эти службы из контроллеров/ресурсов Apitility. – Dragos

ответ

1

ZF3 по-прежнему поставляется с AbstractRestController, который находится по адресу here. Apigility может быть отправной точкой для вашего приложения REST, но вы также можете рассмотреть возможность внедрения только некоторых частей Apigility и построить свою собственную логику поверх этого. Интересные модули могут быть найдены в the ZF-Campus GitHUB repository:

Большинство (если не все) этих модулей реорганизуются для поддержки ZF3 (и обратно совместимы с ZF2).

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

+0

Спасибо Wilt за комментарии. Поэтому я подумываю о структурировании единого модуля для служб REST («RESTModule», т. Е.) И нескольких контроллеров, по одному для каждой группы объектов, что-то вроде «UserRestController» (для информации пользователя), «SalesRestController» (для информации о продажах) 'InvoiceRestController' (для выставления счетов) и т. Д.. Было бы это понятно? – Mendes

+0

Да, это имеет смысл. В Apigility у вас есть слушатели ресурсов, в этом случае у вас будет «ResourceListener» для каждого типа сущности. коллекции и синглтоны обрабатываются в одном контроллере/слушателе. – Wilt