- Опубликовано
Идентификация ресурсов в API
- Автор

- Имя
- Айнур пишет ... 📝
- Telegram
Айнур пишет ... 📝263 подписчика28 постовЖиву в Екатеринбурге, занимаюсь бэкенд разработкой. Тут делюсь опытом, мыслями и заметками из прочитанных книг. Написать мне в личку - @ainr_c Мой блог - https://ainur-khakimov.ru
Идентификация ресурсов в API
Этот пост — краткий обзор главы из книги "API Design Patterns" Дж. Дж. Гивакса.
Итак, что такое идентификатор? Это значение, которое уникально указывает на конкретные ресурсы в API. Но не каждый идентификатор хорош. Надо помнить про простоту использования, уникальность и постоянство. Если нет постоянства, могут возникнуть проблемы, когда ресурсы ссылаются друг на друга. Генерация идентификаторов должна быть быстрой и легкой, чтобы производительность не страдала со временем.
Непредсказуемость идентификатора — важный момент. Неплохо бы сделать так, чтобы нельзя было просто перебрать ID. И, конечно, стоит учитывать читабельность. Если ID видят пользователи, они должны быть понятными и удобными в использовании. Чем больше информации в меньшем количестве символов, тем лучше.
Что касается формата идентификатора, то строки остаются наиболее гибким и удобным решением. С ASCII-символами проще работать в веб-API — это исключает проблемы с неоднозначностью Юникода.
Использование Base32 — это хороший вариант. Этот формат применяет ограниченный набор символов, что делает идентификаторы удобными и легко различимыми. Контрольные суммы в ID помогают отличить некорректные значения. Встраивание типа ресурса в идентификатор также может упростить его идентификацию.
Иерархические идентификаторы могут быть полезны, когда один ресурс зависит от другого, но есть подводные камни. Если ресурсы могут перемещаться, лучше избегать иерархии, чтобы не потерять постоянство идентификаторов.
При реализации стоит помнить про размер. Для уникальности внутри одной области может хватить 13 символов, а для глобальной уникальности — около 25. Позволять пользователям выбирать ID — это рискованная затея; лучше использовать внутренние механизмы генерации.
UUID, хотя и звучит хорошо, в большинстве случаев слишком громоздкие. Их лучше использовать внутри системы, а для пользователей представлять в компактном формате, например, в виде строки Base32.
Идентификаторы в API — это целый мир, и, если подойти к этому вопросу с умом, можно значительно улучшить взаимодействие с ресурсами.
#заметки_из_книг
Из подборки #заметки_из_книг
- Опубликовано
Мягкое удаление (soft delete)

- Опубликовано
📖 API с полиморфизмом

- Опубликовано
API перезапускаемых задач (rerunnable jobs)

- Опубликовано
API длительных операций

- Опубликовано
Пользовательские методы API

- Опубликовано
Стандартные методы API
Свежие посты
- Опубликовано
Классические абстракции используемые в ФП

- Опубликовано
С начала января я завел себе странную привычку...

- Опубликовано
Начал читать книгу "PostgreSQL 16 изнутри"....

- Опубликовано
Как стать сеньором
- Опубликовано
"Цель" Элияху Голдратта — это увлекательная и...

- Опубликовано
Лонгрид про Scalafix

- Опубликовано
Последовательность выполнения задач

- Опубликовано
Зеленые и красные задачи
