Стоит ли начинать разработку сайта сразу с API?
например можно не трогая фронтенд сменить фреймворк или даже язык.В большинстве случаев, можно сменить фреймворк не трогая фронтэнд. Например, если Ваш фреймворк использует шаблонизатор "Twig". В некоторых случаях, так же можно сменить язык, подвергая шаблоны минимальной модификации, которую можно провести через "Найти/Заменить". Но, я бы на Вашем месте не сильно обольщался на эту "возможность".Ну например выбрать 10 новостей в нужном формате
делаем GET запрос Обычно делают POST-запрос, и не в формате адресной строки (GET-параметров), а отправляется так же, запрос в формате JSON. Обратите внимание на ключевое слово "обычно", т.е. не всегда.Применяется такой подход к проектированию?Это скорее подход к разработке, уровня "клиент-сервер", и/или REST API.И может есть готовые решения о которых можно почитать.Не совсем понятно, какое именно готовое решение Вы хотите получить. HTTP-клиенты и обработка JSON-данных, встроена во многие языки, или реализована в виде готовых библиотек.Или есть какие то существенные минусы о которых я не догадываюсь?Если Вы хотите разработать, например, настольное или телефонное (как пример) приложение-клиент, то это один из лучших вариантов. Если же Вы хотите построить по такому принципу обычный сайт, то Вы просто введёте новый уровень абстракции и новое звено в цепочку, чем усложните работу самому себе, а так же потенциально замедлите работу проекта.
Насколько я понимаю, Вы хотите обернуть РСУБД (SQL-БД), работающую через (unix-)сокет, в более примитивные API, выдающие ответы в формате JSON? А чем Вас ответ в формате "SQL result resource" не устроил? :) При использовании РСУБД (и не только) Вы так же можете сменить и шаблонизатор, и фреймворк и язык и всё остальное, а необходимый функционал написать на уровне самой БД, в виде хранимых функций/процедур, без дополнительных, ненужных цепочек передачи данных.
Api стоит делать, если:вы делаете какой-то сервис, подразумевающий пользовательскую интеграцию вы делаете front-end асинхронным(аля SPA, angular/react/backbone)вы планируете сделать приложение или прочее интегрированное решение
В остальных случаях api как первый шаг - так себе бизнес-задача.