Как вы разрабатываете Rest API?

Сейчас разработка приложений с использованием Api (SPA и мобильные) выглядит так:
  • Пишется ТЗ (больше для клиента, чем для разработчиков)
  • Бекендер составляет фикстуры end-поинтов (json файлы или объекты в js)
  • Если нужна работы с внешним сервером, бекендер пишет ТЗ для того, что требуется от них
  • Бекендер пишет код и создает в Postman по нему проект и изменяет абстрактные фикстуры на более реальные по мере написания end-поинтов
  • Фронтендер пишет приложение по фикстурам и документации из Postman по мере их создания
  • Всё дружно тестируется ручками


Сейчас хочется для начала уйти как минимум от фикстур и перейти на mock сервер, который автоматически бы генерировался по OpenAPI (swagger) схемам с фейковыми данными. Но пока не смог поднять нормально mock сервер prism.

Гугл ищет в основном основы вроде https://habr.com/post/351890/

Можете поделиться своими методами работы?
  • Вопрос задан
  • 3259 просмотров
Решения вопроса 2
@float64
Поддерживаю тему с graphql - но тут надо понимать что для того чтобы его применять вам все равно нужно сначала создать REST API с основными CRUD-операциями из которых graphql уже будет собирать все что нужно.

По основной теме могу сказать что лучший подход для создания REST API с автоматической генерации Swagger/Open API спецификации который я видел называется "Model Driven Design" - вот статья о нем: https://strongloop.com/strongblog/node-js-api-tip-...

Статья от разработчиков loopback framework: https://loopback.io

Судя по вашему вопросу у вас бекенд на js поэтому можете попробовать его - это как раз специализированный фреймворк для создания API-серверов. Генерирует весь APi для всех моделей приложения автоматически + методы для всех реляционных связей + позволяет добавлять свои методы.

Для PHP-стека тоже есть решение: https://api-platform.com но оно пока что уступает loopback из-за неполной поддержки автоматического создания эндпоинтов для реляционных связей.

Моя рекомендация:
1) Прочитать про model driven design
2) Составить список моделей вашего приложения
3) Прописать поля, методы и связи каждой модели
4) Сгенерировать API по полученному описанию, документировать, приправить лучком, подать на стол
Ответ написан
Комментировать
@mrAlexRabota
Frontend developer
Может вам посмотреть в сторону GraphQL https://graphql.org/ сервера или как прослойку между сервером и клиентом?)

Думаю уже все наслышаны что это, но я повторюсь какие плюсы дает GraphQL:
* самодокументируемое api
* понимание, что вы должны отправить и что получите
* получаете только то что просите
* типизация данных (как входных, так и выходных)
* понятная документация
Скорее всего я что то забыл, но можно почитать получше и понять что и как

Минусы тоже конечно есть, но плюсы перебивают их)

А если говорить про поводу прослойки, например на nodejs, то появляется еще куча дополнительных возможностей помимо GraphQL, то есть используя тот же apollo для express можно сделать очень хорошие качественные моки для вашего клиента, могу рассказать подробнее если интересно)

Если есть вопросы, спрашивайте, постараюсь ответить на них)
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
gadfi
@gadfi
https://gamega.org
Пишется ТЗ (больше для клиента, чем для разработчиков)

ТЗ в первую очередь нужно разработчиков

Фронтендер пишет приложение по фикстурам и документации из Postman по мере их создания

документацию по апи должен писать фронтенд разработчик ориентируясь на дизайн - ему же с этим работать

зы планируем уходить на graphql
Ответ написан
Можете поделиться своими методами работы?

Как-то у вас все сложно. У меня просто: пишется API, потом все это вносится в Postman, тестируется то, что не было с матюками протестировано в процессе работы и сдается.
Ответ написан
@oldhowl
Postman не юзаем как таковой. Для документации API используем swagger в связке с .net core, на нём же кодогенерируем API клиента для фронта. Проблем никогда не возникало и время экономит много.
Пока пилим бек, фронт верстает страницы, отдаем бек частями. Просто согласовываем что пилим и параллельно работаем.
Ответ написан
Комментировать
@chibitko
.net (core) + swashbuckle
фронтеры пишут прототип, постепенно прикручивая api
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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