Как создать API?

Добрый день! В одном из видео, Дмитрий Лаврик рассказал, что бэкэндщики создают бэк посредством создания API. Кто подскажет, саму база данных также нужно создавать? Какой стек технологий необходим для создания? Я гуглил но мало что нашёл…
Где найти информацию о создании API? Прошу скинуть ссылки на курс/статьи/книги

Приветствия.

Вопрос про разработку API очень большой. Я попробую описать общую рамку и дать наметки которые помогут тебе найти направление с которого начинать поиск решения.

API - application public interface, публичный интерфейс приложения. Например этот форум использует плагин который “дергает” API телеграмма чтобы уведомить пользователя о новой теме или сообщении. Человек который разработал плагин использовал API платформы discourse (платформа этого форума) для того чтобы написать программу-плагин который сам использует API телеграмма.

API это доступ к взаимодействию с программой через протоколы (http, grpc, websockets и другие). Советую свой первый API писать на HTTP протоколе так как по этой есть куча ответов на возникающие вопросы, куча библиотек и примеров.

Выбирай тот язык программирования с которым ты знаком. Если ты изучаешь новые 2 вещи одновременно, как писать АПИ и сам язык программирования, то эффективность обучения падает а сложность растет. Это же касается изучения базы данных. Если ты еще не умеешь с базами данных, то я бы советовал писать решение без их применения. Во всяком случае свое первое решение.

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

У меня есть пример проекта с минимально возможным и минимально полезным АПИ. Это АПИ для создания тудушек. Цель того проекта было научить фронтендщиков создавать приложения поверх АПИ. Но я сделал бекенд достаточно простым и линейным чтобы можно было понять что происходит. Данные хранятся в файлах (упрощает дебаг), а каждый метод сервера максимально прост на сколько это возможно. GitHub - podgorniy/todo-server. Думаю тебе будет полезно посмотреть как код устроен на бекенде, может даже скопировать части в своей реализации. Набор инструментов nodejs, expressjs не устарел и актуален. Единственно что ты хочешь использовать последнюю версию.

Итого. Тебе нужен nodejs, express. Тебе нужна идея какой API ты будешь реализовывать. Можешь скопировать тот что я скинул, можешь сделать аггрегатор: например сбор данных погоды с нескольких других АПИ. Потом нужно придумать как будет выглядеть API с точки зрения HTTP (какие методы использовать, какие рауты, какие данные и в каком формате пересылать). Потом реализовать в nodejs функции-обработчики для раутов. Когда это будет готово, задумайся над аутентификацией и авторизацией (обязательно возьми готовое решение и “прикрути” его к своему).


Прошу скинуть ссылки на курс/статьи/книги

У меня такой информации нет. Но я могу дать нечто необычное и не менее полезное. Позадавай свои вопросы (в стиле “как сделать API” или “какой стек использовать для реализации API в nodejs”) вот этому телеграм боту. Этот бот работает на API (иронично) от искусственного интеллекта, и отлично справляется с разъяснениями вопросов про программирование. Единственное что ему не доступно, это оперативная информация типа новостей-событий, погоды, итд.

Пока что этот бот бесплатен и безлимитен, но я планирую брать деньги за использование. Для пользователей форума бесплатные лимиты будут большими чем для обычных людей. Безлимитное пользование ботом можно получиться при поддержке меня через патреон.

1 лайк