Что такое API, REST API? Как сделать локальный API на Localhost?
IT API
06/12/2020

Что такое API, REST API? Как сделать локальный API на Localhost?

Реклама

Автор: Камиль Г.

Что такое API?

Простыми словами: это способ взаимодействия одной программы с другой программой посредством ссылки. Прикладным пониманием: это некая ссылка, с помощью которой ваша программа получает нужные вам данные из сервера. API используется во Вконтакте, facebook, Instagram и, наверное, в большинстве программ, используемые вами.

Что такое REST API?

REST – REpresentational State Transfer («передача состояния представления»). Это способ архитектурного проектирования API для приложений.

Разработчики все чаще смотрят в сторону построения приложений с использованием API. У этого подхода есть ряд преимуществ, главным из которых, по моему мнению является мобильность и упрощение создания и поддержки приложения. С АПИ все становится проще: фронт (front-end) работает сугубо с фронтом и не вникает, как происходит обработка и передача данных, бэк же (back-end) не волнует, как и где будут использованы данные, которые они обрабатывают.

В итоге back отдает ссылки на свои сущности, а front использует каждый линк там, где он требуется.

Концепция CRUD — Create, Read, Update, Delete

Что такое CRUD?

CRUD – это акроним, который расшифровывается как: Create, Read, Update, Delete. Это 4 базовые функции, в которых зашита логика на back-е, как и что делать с данными: создать запись, отдать на чтение, обновить или удалить информацию. Именно эти 4 функции и используются в RESTful API.

А как же HTTP?

Да, все мы знаем протокол HTTP, который в своем теле может содержать много информации, в том числе и команды на чтение, удаление, изменение, обновление и др.

Полный список команд (методов) протокола HTTP: GET, HEAD, POST, PUT, DELETE, CONNECT, OPTIONS, TRACE, PATCH.

Но зачастую сервер не понимает и не принимает какие-либо запросы, кроме как GET, POST. Вместо ответа может вернуться ошибка, например 501. Т. к. в протоколе HTTP не раскрыта тема того, как должен поступать сервер при той или иной ситуации. У сервера есть обязательство обрабатывать GET запросы, а ваши PUT-ы могут пройти мимо.

Как сделать свою API?

Закончили с вводной частью, теперь рассмотрим инструменты, которые понадобятся для создания своего API на localhost:

  1. Nodejs
  2. Npm, пакетный менеджер внутри nodejs
  3. Пакет json server

После установки nodejs откройте директорию, где будет располагаться ваш созданный API. После этого необходимо открыть командную строку внутри папки и ввести команду:

npm init

После этого либо нажимаем везде на enter, либо заполняем на свое усмотрение:

npm init запускает инициализацию package.json файла

Теперь у нас есть созданный файл package.json. В той же командной строке пишем следующую инструкцию:

npm install json-server --save-dev

У нас есть почти все, что нам необходимо. Осталось сделать 2 шага:

  • Переписать скрипт package.json
  • Создать файл с тестовыми данными в формате .json

В файле package.json заменим объект “scripts” на:

"scripts": {
    "json:server": "json-server --watch db.json --port 3004"
},    

Это делается для более простого запуска нашего API сервера. "db.json" – это наша база данных, а --port 3004 – это замена порта по умолчанию. (Если параметр не указан, то порт будет равным 3000).

Создадим в этой же директории наш файл db.json и заполним его необходимыми данными:

Создаем файд db.json и в json формате заполняем наши данные, используя [] для создания массивов данных и {} для создания объектов данных

Теперь в консоли нам достаточно набрать:

npm run json:server

Запущенный API сервер:

Запускаем наш json сервер командой npm run json:server

Теперь перейдем в браузер по ссылке:

http://localhost:3004/users

И увидим наши данные наяву:

По ссылки с указанием порта открываем в браузере наш данные по API

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

Какие есть дополнительные возможности?

Если вы из js или иного кода будете отправлять POST, PUT, PATCH или DELETE запросы, то все изменения будут сохраняться в вашем db.json файле.

Фильтрация ответов:

Данный АПИ сервер поддерживает параметры через «?» и перечисление параметров через «&», например:

http://localhost:3004/users?id=2
http://localhost:3004/users?user_status=true&isFriend=false
Фильтрация данных, возвращаемые json сервером

Для обращения к вложенным элементам можно использовать точку .:

http://localhost:3004/users?location.city=Москва
Для обращения ко вложенным полям используем оператор '.'

Пагинация

По умолчанию количество элементов, возвращаемые API равно 10. Соответственно, нам может понадобиться обращаться к скрытым элементам и менять количество объектов в ответе:

http://localhost:3004/users? _limit=3
http://localhost:3004/users?_page=2&_limit=3
Используя _limit и _page можем пробежаться по всем данным из db.json

Сортировка

Нам может понадобиться отсортировать результаты. Для этого есть зарезервированные слова _sort и _order, где _сорт – это выбор поля, по которому сортируем, _ордер – тип сортировки (восходящая или нисходящая)

http://localhost:3004/users?_sort=location.city&_order=desc

Для нескольких полей ссылка будет следующей:

http://localhost:3004/users?_sort=location.city,firstname&_order=desc,asc
Сортируем данные с помощью оператора _sort и _order

Поиск

Поиск подтекстов в данных:

localhost:3004/users?q=Юрий
Для поиска данных из локального АПИ используется оператор 'q'

Дополнительные функции

Больше функций вы найдете по ссылке в документации

Можно также:

  1. Делать слайсы (срезы) данных
  2. Добавлять дочерние ресурсы
  3. Сделать общий доступ отовсюду
  4. Операторы < > ≤ ≥ <исключение значения>, <оператор _like с поддержкой регулярных выражений>
  5. Генерировать рандомные данные
  6. Сделать доступ к API по SSL (HTTPS)
  7. Создавать свои роуты (ссылки, где будет заложена некая логика)
  8. Добавить выполнение скриптов перед запуском сервера
  9. Создать аутентификацию к API
Вконтакте
Класснуть
Отправить
Вотсапнуть

Реклама