Хочу сделать API, с чего начать?

Хочу сделать рест апи (php + mysql), опыта в создании апи вообще нет. Допустим есть мобилка, какая будет общаться с сервером через апи, и стоит цель сделать хорошее, рест апи.
Вопросы следующие:
1) стоит ли делать апи с помощью какого то фреймворка, или с нуля?
2) надо выделять отдельный сервер для апи, или просто папочку в проекте назвать api, и туда все файлы связанные с ним положить?
3) хорошие примеры, литература, кто что может посоветовать. Когда ввожу rest api php выдаются пару уроков, но это не совсем то, что мне надо) нужны бест практис различные
  • Вопрос задан
  • 28245 просмотров
Пригласить эксперта
Ответы на вопрос 7
zoonman
@zoonman
⋆⋆⋆⋆⋆
Следует начать с проектирования API. Возмите https://swagger.io/ и набросайте все, что нужно.
Swagger вам позволяет объединить роутинг, документацию и примеры вызовов в единое целое.
Кроме этого он позволяет сгенерировать заглушки для разных языков программирования и фреймворков.
В принципе вы можете найти значительное количество интеграций для разных фреймоворков.

В целом API лучше делать с помощью фреймворков, поскольку в них уже реализованы тривиальные моменты по безопасности, аутентификации и авторизации. Вы можете использовать микрофреймворки, например тот же Slim. Вы даже можете сгенерировать роутинг для него используя генератор от Swagger.

В REST есть 6 принципов, прекрасно изложенных в Wiki. В REST нет ничего сложного и особенного. Это просто надстройка над стандартным протоколом HTTP. Именно поэтому нет никаких особенных уроков. Изучите работу HTTP и вы поймете как работает веб в целом и REST в частности.

По поводу отдельного сервера для API. Есть множество разных подходов. В последнее время все более актуальными становятся Serverless-приложения. Serverless архитектура идеально вписывается в REST. Но думаю для вас это пока рановато и сложновато. Слишком много для начала.

Логичнее всего держать проект в моно-репозитарии, если он не будет большим. Если вы точно не знаете насколько большим он будет, то можно разбить проект на компоненты и использовать Composer для управления зависимостями (советую полность прочитать эту страницу от корки до корки).

По поводу best practices есть очень хороший ресурс https://12factor.net/ru/
Он в целом применяется для всех приложений.

Запомните: первый блин всегда комом. Прочитайте все ресурсы, которые я привел для вас. В них много ссылок на другие, походите по ним, присмотритесь. Напишите первую версию API так, как вам кажется удобно. Постарайтесь применить практики из статей.
Вам нужен опыт и вы его не наберетесь, пока не сделаете что-то сами. Вы можете потратить год на чтение, но останетесь на том же месте, с которого начали. А другой человек напишет на коленке API за неделю, а потом перепишет его 20 раз за год и он вам расскажет в 10 раз больше, чем то, что вы изучили за год.
Дерзайте!
Ответ написан
@sdfsdfertdfd
Не надо изобретать велосипеды.
Юзай готовые кейсы - бест практис.

Надо обязательно оскорбить каждого начинающего изобретателя.
Рано тебе еще изобретать апи - сначала чужими пользуйся и не высовывайся, шибко умный нашелся тут.

Инициатива строго наказуема.
Все должны быть стандартными и заменяемыми - в этом сакральный смысл индустрии.
Ответ написан
@kuftachev
Судя по Вашему вопросу, Вам ещё далеко до создания API, если цель коммерческая, лучше обратиться к профессионалам.

Если для себя, то конечно нужно для начала освоить какой-то фреймворк, при чем, любой из основных предложит не плохое решение для API.

" надо выделять отдельный сервер для апи, или просто папочку в проекте назвать api, и туда все файлы связанные с ним положить?"... Вот честно, ещё рано, паттерн Фронт Контроллер в крови у каждого веб девелопера.
Ответ написан
@Dmi3ii
Я - новичок, но делал на laravel (на вырост). Для моих задач не сложно было, довольно быстро "въехал" в базу. В сети полно турториалов и видео по этой теме. Установите Insomnia или Postman, чтоб запросики посылать и тестируйте свой api.
Ответ написан
Комментировать
ThunderCat
@ThunderCat
{PHP, MySql, HTML, JS, CSS} developer
Вроде сегодня все основные фреймворки имеют апи интерфейсы? Или я что-то упускаю? имхо взять готовый отлаженный двиг и на нем быстро и аккуратно поднять апи - бест практис.
Ответ написан
Комментировать
firedragon
@firedragon
Не джун-мидл-сеньор, а трус-балбес-бывалый.
API
Application Programming Interface
Из этого следует что это какое то подобие общения с программой, которое описано в RTFM .
И если у вас не хватило терпения прочитать, заплатите деньги
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы