Вот и настала моя учесть реализовывать большое сложное API. Потратил 2 недели на поиски вменяемой информации по архитектуре, но ничего внятного не нашел. Допустим необходимо реализовать несколько REST методов: Код (Text): /files/ /files/1 /files/1/comments /user/2 При этом, должна быть возможность получения в одном запросе нескольких коннекторов одновременно, как у Facebook API, Google API и т.д. Например, Код (Text): //Request http://api/files?fields=id,name,comments.fields(text,user.fields(name)) // Response { "items":[ { "id":1, "name":"test.txt", "comments":[ { "text":"lalala 1", "user":{ "name":"Vasya" } }, { "text":"lalala 2", "user":{ "name":"Petya" } } ] } ] } Так вот в чем вопрос, во первых не известно какие поля запросит клиент API. Я думал в сторону Varnish ESI JSON, т.е. я отдаю ESI допустим на информацию о пользователе, оно интегрируется в JSON, отдельно информацию на список комментариев, аналогичная ситуация. Тогда мне необходимо реализовать простые методы контроллера. Но правильно ли это, или я в рамках одно контроллера, практически в рекурсии должен сформировать единый JSON, но тут может появиться очень большое количество SQL запросов.