TGViewer
GetAnalyst - Навыки • Системный анализ • Бизнес-анализ GetAnalyst - Навыки • Системный анализ • Бизнес-анализ @getanalysts · 22.6K subscribers
Post #2394 5.79K
☑️ Проверьте свои знания: как строить эндпоинты для REST API методов ✅

Разобрали:
🔗HTTP-методы
🔗Структура URL
🔗Пагинация

Попробуйте ответить на вопросы, а затем сравнить результаты с предложенными ответами 👇

1. Какой метод и URL использовать для добавления нового продукта с КБЖУ?
❌ POST /createProduct
→ В URL дублируется действие, хотя оно уже обозначено методом POST
✅ POST /products
→ Метод POST = создание, /products — имя сущности (ресурса), которым управляем



2. Какой эндпоинт нужен для создания рецепта конкретным пользователем?
❌ POST /recipes/{userId}
→ Ресурс recipes не вложен внутрь userId, иерархия нарушена
▫️ POST /recipes?userId={userId}
→ Можно, но есть вариант лучше
▫️ POST /users/{userId}/recipes
→ Аналогично
✅ POST /recipes
с авторизацией пользователя в заголовке header запроса
→ Кто автор — понятно из токена, userId не нужен в URL. В двух вариантах выше не лучшее решение, т.к. по факту получается, что есть дублирование id пользователя в запросе



3. Как изменить обложку (фото) рецепта с id = 45?
❌ PUT /recipes/45/changeCover
→ Избыточный глагол в URL, лучше обозначить действие через PATCH
✅ PATCH /recipes/45/cover
→ PATCH подходит для частичного изменения (только обложки). Это конкретный эндпоинт для загрузки нового изображения
✅ PATCH /recipes/45
с телом { "coverUrl": "..." }
→ Если есть отдельный метод POST /images на загрузку изображений в файловое хранилище, из которого можно получить url для подстановки в
"coverUrl"



4. Как удалить продукт из справочника?
❌ PATCH /deleteProduct/15
→ Действие должно быть в глаголе HTTP - DELETE
▫️ DELETE /products?productId=15
→ Есть вариант лучше
✅ DELETE /products/15
→ Лучший вариант
✅ PATCH /products/15/archive
→ Если хотим архивировать - удалить с возможностью восстановления



5. Как удалить продукт из рецепта (ингредиент)?
❌ DELETE /products/15
→ Это удалит сам продукт, а не его использование в рецепте
✅ DELETE /recipes/8/ingredients/15
→ Соблюдена иерархия



Какие ещё варианты у вас получились? Есть вопросы? Пишите комментарии 📝👍

#RestApiGA #RecipeGA
  • 👍 28
  • ❤ 18
  • ❤‍🔥 4
  • 👌 1
More from @getanalysts
  1. Oct 16, 2026❗️ Новый HTTP-метод QUERY: значительное изменение стандарта впервые за 16 лет ❗️ 👉 Новый…
  2. Oct 15, 2026✅ 64 API-термина для системного аналитика ✅ Собрала мини-книгу по API для работы и подгото…
  3. Oct 14, 2026⚡ Если вы уже умеете писать простые SELECT, то следующий шаг, где чаще всего начинается бо…
  4. Oct 13, 2026❌🙅‍♀️🙅‍♂️ Что системному аналитику НЕ нужно уметь в работе с логированием и мониторингом…
  5. Oct 12, 2026📊🔥 Grafana, Kibana, OpenTelemetry: какие инструменты наблюдаемости нужны системному анал…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →