Какие знания/нвыки необходимы для написания своего API?

Что мне необходимо знать/уметь для написания серверной части API?

Видел какие-то статьи на хабре, понял из них, что мне необходимо знать ООП, так же некоторые пишут, что своё API пишется при помощи Symfony, но об этом говорят не все... В общем, после прочитанного у меня в голове каша, так и не понял, что точно мне необходимо знать, прошу помощи у профи.

P.S. В первую очередь надо для связи android приложения с серверной частью.
P.P.S Очень нравится реализация в vk.com, всё понятно и на своих местах
  • Вопрос задан
  • 2460 просмотров
Решения вопроса 2
DmitriyEntelis
@DmitriyEntelis
Думаю за деньги
1) Вопрос использовать ли вообще ООП или нет - он очень условен.
Без ООП не работает любой современный фреймворк.
Поскольку MVC таки использовать надо - соответственно ооп у вас будет автоматом)

2) По поводу Symfony - абсолютно без разницы на каком именно фреймворке Вы пишите свой код.
Symfony мне кажется более сложен для начинающего, попробуйте Yii2 или Laravel.
Опять же повторюсь, это не принципиально. Можно взять любой микрофреймворк - это будет даже полезней с точки зрения развития начинающего разработчика.

3) API это по сути обычный набор скриптов, отличающийся от обычных страниц тем, что в web страницах вы отдаете html - а в API вы отдаете JSON/XML/что_то_ещё (я лично советую использовать JSON по целому ряду причин, но вопрос в целом холиварен)
REST API (опять же дефакто массовый стандарт) - это договоренность о некоторых базовых принципах, по сути о форматах запроса, ответа, об отсутствии состояний (stateless)
Возвращаясь к пункту 2 - многие фреймворки дают автоматизацию в построении rest api, например вот свежая статья с примерами по Yii2 habrahabr.ru/post/240149

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

4) В любом случае - начните с написания документации для самого себя:
Какие у вас есть сущности(ресурсы в терминологии rest), опишите их.
Какие действия над ними может производить клиент.
По каким условиям клиент может запрашивать фильтрацию каких сущностей.
Есть ли у вас необходимость передавать сущности не целиком (тоже холиварный вопрос)
итд

Прошу прощения если получилось сумбурно, писал одновременно с утренним кофе :)
Ответ написан
Комментировать
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
REST, HTTP. Можете попробовать для начала с SIlex побаловаться если API простая. Или рассмотреть варианты всяких parse.com
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

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