API должен выполнять четыре типа функций. Он должен иметь возможность создавать новые данные, а также читать, обновлять и удалять существующие. В информатике мы называем эти параметры CRUD.
Метод CRUD необходим при создании веб-приложений, поскольку он позволяет структурировать модели, которые вы создаёте для своих API. Но как работает CRUD? Как вы взаимодействуете с API с помощью CRUD?
В этой статье мы отвечаем на эти вопросы. Мы начнём с обсуждения основ CRUD, а затем рассмотрим несколько примеров того, как взаимодействовать с API с помощью CRUD.
Зачем нам нужен CRUD
Допустим, мы создаём API, в котором хранится кофе, продаваемый в нашем кафе. Этот API должен иметь возможность хранить различные объекты кофе. Кофейный объект может включать:
- Уникальный идентификатор кофе.
- Название кофе.
- Цена на кофе.
Мы хотим убедиться, что пользователи могут взаимодействовать и изменять данные, хранящиеся в нашем API. Вот почему нам нужно следовать структуре CRUD. В конце концов, для чего нужен API, в котором хранится кофе, если компания не может изменить цену на свой кофе? Зачем компании использовать API, который не позволяет удалять записи?
Что такое CRUD
CRUD — это аббревиатура от Create, Read, Update и Delete.
Когда вы работаете с веб-службами, CRUD соответствует следующим HTTP-методам, которые используются, чтобы сообщить веб-серверу, как вы хотите взаимодействовать с веб-сайтом:
- Создать: POST.
- Читать: GET.
- Обновление: PUT.
- Удалить: DELETE.
Давайте рассмотрим каждого в отдельности.
Мы собираемся использовать утилиту командной строки cURL для создания примеров запросов к API кофе, чтобы вы могли увидеть, как работают эти операции. Прежде чем мы начнём, запустите следующую команду в терминале на вашем компьютере, чтобы убедиться, что cURL установлен:
curl
Если в вашем терминале появляется ошибка «curl: command not found», вам необходимо установить cURL. В противном случае вы готовы приступить к работе!
Создать
API, который хранит данные для нашего кафе, должен позволить нам добавлять новые записи в меню. В этом случае мы сможем создать новый кофейный элемент, указав его название и цену.
Чтобы добавить новый кофе в меню, мы можем использовать запрос POST, который позволяет нам отправлять данные в наш API, которые будут храниться в базе данных.
Вот информация о кофейном элементе, который мы хотим добавить:
- Название: Эспрессо
- Стоимость: 1.95
Следующая команда cURL позволяет нам создать кофе с этими деталями с помощью нашего API:
curl -X POST http: // localhost: 5000 / add -d name = Espresso -d price = 1.95
В этой команде мы используем флаг -X, чтобы структурировать наш запрос как запрос POST. Затем мы используем флаги -d, чтобы указать данные, которые мы хотим отправить в наш API. В этом случае мы используем два флага -d: один для указания названия кофе, а другой для указания его цены. Наш код возвращает:
{«name»: «Espresso», «price»: «1,95»}
Эта команда создаёт новый кофе в нашей базе данных с именем «Эспрессо» и ценой «1,95».
Читать
Наш API должен позволять нам видеть список всех сортов кофе в нашем меню. Чтобы увидеть эти данные, мы можем использовать запрос GET. Это позволяет нам видеть список кофе в нашем меню, не внося изменений в данные, хранящиеся в нашем API.
Эта команда позволяет нам получить список кофе из нашего API:
curl -X GET http: // localhost: 5000 / coffees
Наша команда возвращает:
{
«coffees»: [
{
«id»: 1,
«name»: «Espresso»,
«price»: 1.95
},
{
«id»: 2,
«name»: «Latte»,
«price»: 2.6
}
]
}
Как видите, этот ресурс позволяет нам получить список кофе. API, использующий структуру CRUD, часто также позволяет получать отдельные записи. Например, следующая команда позволяет нам получить данные об одном элементе кофе:
curl -X GET http: // localhost: 5000 / coffees / 1
Наш код возвращает:
{
«coffees»: [
{
«id»: 1,
«name»: «Espresso»,
«price»: 1.95
}
]
}
Вы можете видеть, что наша команда вернула кофе, идентификатор которого равен 1. В данные не было внесено никаких изменений, потому что запросы GET могут получать данные только из API.
Обновить
Нам также необходимо поддерживать обновление записей в нашем API. Соответствующий HTTP-метод для обновления ресурса с помощью CRUD — PUT.
Если мы хотим изменить цену нашего латте на 2,75 доллара, мы можем использовать следующий запрос PUT:
curl -X PUT http: // localhost: 5000 / update / 2 -d name = Latte -d price = 2.75
Наш код возвращает:
{
«coffees»: [
{
«id»: 2,
«name»: «Latte»,
«price»: 2.75
}
]
}
Этот запрос изменяет имя и цену записи Latte на значения, которые мы указали в нашей команде cURL.
Удалять
Последняя операция в структуре CRUD — это Delete, чей соответствующий HTTP-метод — DELETE.
Предположим, у нас закончился порошок эспрессо, и мы должны удалить его из нашего меню. Мы могли бы сделать это, используя следующий запрос:
curl -X DELETE http: // localhost: 5000 / DELETE / 1
Когда мы запускаем этот код, ответ не возвращается. Это потому, что указанный кофе удалён с нашего сервера. Если мы запустим запрос GET, чтобы снова увидеть список кофе, мы увидим, что запись со значением 1 — эспрессо — была удалена.
CRUD
Теперь вы знаете основы. CRUD — это структура, которая определяет четыре основные операции, которые должна выполнять веб-служба. Чтобы углубить свои знания о CRUD, подумайте о гипотетическом API, который вы можете спроектировать и составить список маршрутов.
Например, API для отслеживания ваших любимых песен может иметь следующие маршруты:
- /songs (GET)
- /songs/new (POST)
- /songs/:id (GET)
- /songs/:id (PUT)
- /songs/:id (DELETE)
Попробуйте составить список маршрутов для вашего собственного API и запишите соответствующие методы HTTP.
Если вы хотите поиграть с веб-запросами, которые мы использовали в этом руководстве, вы можете просмотреть код, который мы использовали для размещения API на GitHub.
curl -X УДАЛИТЬ http: // локальный: 5000 / удалить / 1 =
curl -X DELETE http: // локальный: 5000 / DELETE / 1
?