Как стать автором
Обновить

Простой каркас Rest Api на основе Phalcon

Время на прочтение2 мин
Количество просмотров8.5K
Привет всем.
Вот хочу предложить небольшой пример реализации простого rest api на основе популярного фреймвокра Phalcon. Даже фаткически не реализацию, а её каркас. Сразу уточню что статья расчитана на новичков. Людей обознанных и опытных врядли заинтересует содержимое.
Phalcon предоставляет широкие возможности для разработки, а также очень большую свободу для творчества и создания хороших продуктов, потому пример действительно очень прост.

Фактически всё что надо — лишь создать конкретный экшн в контроллере, цель которого сделать return набора нужных данных, при этом роутинг строится на основе аннотаций к конкретному экшену, пример:
<?php

namespace RestApi\Api\Controllers;

class IndexController extends RestController
{

    /**
     * @Get("/get")
     */
    public function getAction()
    {
        return ['getAction'];
    }

    /**
     * @Post("/post")
     */
    public function postAction()
    {
        $this->setStatusCode(201);
        return ['postAction'];
    }

    /**
     * @Put("/put")
     */
    public function putAction()
    {
        $this->setStatusCode(201);
        return ['putAction'];
    }

    /**
     * @Delete("/delete")
     */
    public function deleteAction()
    {
        return ['deleteAction'];
    }

}

Что значит: URI /get доступен для GET запросов, /post для Post и тд. Ответ возвращает json представление значения, которое вернет экнш контроллера. Уточню что api поддерживает лишь json формат вывода, в то же время очень просто добавить новый лишь расширив метод RestController::prepareResponse.
Роутинг построен на аннотациях и поддерживает целый ряд форматов, которые можно найти тут.
Создавая новый конроллер, его необходимо пронаследовать от базового RestController и добавить описание в /config/ruotes.php:
$router->addModuleResource("api", "RestApi\Api\Controllers\NewController");

Вот собственно и все!
Исходники находятся здесь. Большое спасибо за внимание и просьба не судить строго. Если даже никому и не пригодится реализация, возможно статья возбудит интерес к самому фреймворку, а он действительно крут.
Теги:
Хабы:
+2
Комментарии13

Публикации

Изменить настройки темы

Истории

Работа

PHP программист
155 вакансий

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн