URL дизайн на собеседовании системного аналитика

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Карьерник — Duolingo для аналитиков: 10 минут в день тренируй SQL, Python, A/B, статистику, метрики и ещё 3 темы собеса. 1500+ вопросов в Telegram-боте. Бесплатно.

REST URL conventions

Resources — nouns, не verbs.

GOOD:
GET /orders             — list
GET /orders/42          — single
POST /orders            — create
PUT /orders/42          — replace
PATCH /orders/42        — partial update
DELETE /orders/42       — delete

BAD:
POST /createOrder
GET /getOrderById?id=42

Nested:

GET /orders/42/items       — items для order 42
GET /users/99/orders        — orders для user 99

Глубже 2-3 levels — антипаттерн.

Plural vs singular

Plural. Standard. /orders, /users.

Singular. Иногда для singleton (/me, /profile).

Consistency важна — не mix.

Versioning

URL. /v1/orders, /v2/orders. Most popular.

Header. Accept: application/vnd.api.v2+json. Cleaner URLs, but harder debug.

Query param. /orders?version=2. Anti-pattern.

URL versioning — practical default.

Готовься к собесу аналитика как в Duolingo
10 минут в день — SQL, Python, A/B, метрики. 1700+ вопросов в Telegram
Открыть Карьерник в Telegram

Query parameters

Filtering: ?status=paid&country=RU.

Pagination: ?limit=20&cursor=abc или ?page=2.

Sorting: ?sort=created_at&order=desc.

Sparse fieldsets: ?fields=id,name.

Включение: ?include=customer,items (relations).

JSON:API spec gives stadnards.

Slugs

URL-friendly identifiers.

/articles/how-to-write-clean-code
/products/iphone-15-pro

Generation. Lowercase, hyphenate, transliterate.

Stability. Slug change breaks links. Either:

  • Immutable slug — no changes after creation.
  • Redirects от old к new.

Связанные темы

FAQ

Это официальная информация?

Нет. Статья основана на REST best practices, JSON:API spec.


Тренируйте системный анализ — откройте тренажёр с 1500+ вопросами для собесов.