Привет всем.
Вот хочу предложить небольшой пример реализации простого 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");

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