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

    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), опишите их.
    Какие действия над ними может производить клиент.
    По каким условиям клиент может запрашивать фильтрацию каких сущностей.
    Есть ли у вас необходимость передавать сущности не целиком (тоже холиварный вопрос)
    итд

    Прошу прощения если получилось сумбурно, писал одновременно с утренним кофе :)
    Ответ написан
    Комментировать