Создание API

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

Давайте рассмотрим пример простого приложения CRUD, у которого есть панель управления, на которой люди могут видеть список элементов, страницу, на которой люди могут редактировать и удалять элементы, и страницу, где люди могут добавлять элементы. Большинство бизнес-приложений имеют аналогичную функциональность. Давайте протестируем это приложение. Мы открываем дашборд в двух разных браузерах (имитируя двух пользователей). В одном браузере вы нажимаете «Добавить новый элемент», заполняете все данные и нажимаете «Сохранить». Вы вернетесь в панель управления и увидите новую добавленную запись в таблице. Другой браузер (пользователь) ничего об этом не знает, и у него по-прежнему нет нового элемента.

В этом руководстве мы собираемся установить соединение сокета в реальном времени между браузером и сервером, чтобы сервер мог отправлять сигналы в браузер. Таким образом, ваше приложение никогда не устареет. Можно было бы возразить, что они могут обновлять панель управления каждые несколько секунд, но это не так круто, как соединение через сокет. Кроме того, опрос неэффективен и может стать беспорядочным, если вы хотите, чтобы все приложение работало в режиме реального времени, а не только панель управления. Я слишком долго говорю, давай сейчас запачкаем руки.

Это то, к чему мы стремимся

Мы начнем с создания простого crud api для модели «Сотрудник». Самая простая база данных, которую мы можем использовать для этого, - это LiteDb. Это встроенная база данных для dotnet. Вот как выглядит контроллер:

Это все для части 1. В следующей части мы создадим интерфейс с помощью response & redux. Как только у нас будет рабочая интеграция между интерфейсом и api, мы улучшим ее, чтобы установить связь между ними в реальном времени.