Создание API

Всем доброго времени!

Стоит задача написать относительно простое API для мобильного приложения (что-то типа каталога). До этого всё кое-как работало на самописном движке, но вскоре стало понятно, что расширять его будет весьма проблематично и затратно (по причине костылей и квадратных колёс, ну, это не суть важно)

Так вот, было принято решение написать API на фреймворке (чтобы потом в будущем можно было без проблем сделать web-версию). Выбор пал на Yii2.

Опыт работы с фреймворком у меня весьма посредственный - пара тестовых проектов и понимание основных принципов того, как там всё работает и устроено, но не более.

Исходя из документации я понял, что в Yii есть поддержка RESTful Api и его реализация не так сложна… Но вот вся проблема в том, что АПИ нужно реализовать так, чтобы было минимум отличий от предыдущей недоверсии. Вплоть до "одинаковости" запросов и ответов. Всё это для того, чтобы затрагивать код клиентской части как можно меньше… А если реализовывать на RESTful, то менять придётся всё.

В итоге получается, что нужно реализовать свой API-движок, если это так можно назвать и работать уже с ним.

И… Я просто не знаю как это сделать на Yii. Сделать-то конечно смогу, но не зная тонкостей работы с фреймворком начну изобретать кучу велосипедов, делать то, что во фреймворке уже теоретически есть.

Вид JSON ответа примерно такой:




{

  "response":{

    // Тут результат работы

  },

  "status":{

    "code":0,

    "message":"Success"

  }

}



Т.е в моём текущем понимании это всё должно работать примерно так:

Клиент делает запрос на server.com/api/user/list (server.com/?r=api/user/list).

Далее в методе actionList ведётся работа с моделью, которая возвращает данные и БД, далее всё это подставляется в "шаблон" ответа, в объект response. Т.е. в идеале после этого запроса ответ должен быть таким:




{

  "response":{

    "list":[

      {

        "id":1,

        "name":"Петя"

      },

      {

        "id":2,

        "name":"Вася"

      }

    ]

  },

  "status":{

    "code":0,

    "message":"success"

  }

}



Вроде всё просто и понятно, но вот тут у меня возник вопрос: Как реализовать работу с шаблоном, где и что нужно создавать? Я так понял для всего этого нужно написать класс, который будет всем этим заниматься… Создать-то не проблема, но хочется использовать функционал фреймворка по полной ;)

Извиняюсь за свою тупизну и примитивные вопросы, но гугл даёт инфу только по REST апи…

Всем бобра!

Лучше сюда запостить: http://yiiframework.ru/forum/viewforum.php?f=30. На yiiframework.ru русскоязычное сообщество более активно…

samdark, хорошо, спасибо за совет.

Создам тему там, а тут, наверное, уже не актуально тогда, можно закрывать.