[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"question-rest-api-kakovy-luchshie-praktiki-proektirovaniya-uri":3},{"id":4,"slug":5,"topicId":6,"topicSlug":7,"topicName":8,"topicEmoji":9,"question":10,"answer":11,"codeLang":12,"codeSrc":12,"important":12,"commonMistakes":12,"modernUsage":12,"difficulty":13,"tags":14,"related":16,"progress":17,"seo":18},1117,"kakovy-luchshie-praktiki-proektirovaniya-uri",34,"rest-api","REST API","🌐","Каковы лучшие практики проектирования URI?","URI в REST API должны быть предсказуемыми, читаемыми и отражать структуру ресурсов, а не операции над ними.\n\n1. **Используйте существительные, а не глаголы:**\n```\nGET  \u002Fapi\u002Fusers          (правильно)\nGET  \u002Fapi\u002FgetUsers       (неправильно)\nPOST \u002Fapi\u002FcreateUser     (неправильно)\n```\n\n2. **Используйте множественное число для коллекций:**\n```\n\u002Fapi\u002Fusers               (правильно)\n\u002Fapi\u002Fusers\u002F42             (правильно)\n\u002Fapi\u002Fuser                 (неправильно)\n```\n\n3. **Используйте вложенность для связанных ресурсов** (не более 2-3 уровней):\n```\nGET \u002Fapi\u002Fusers\u002F42\u002Forders       — заказы пользователя 42\nGET \u002Fapi\u002Fusers\u002F42\u002Forders\u002F7     — заказ 7 пользователя 42\n\n\u002Fapi\u002Fusers\u002F42\u002Forders\u002F7\u002Fitems\u002F3\u002Freviews   (неправильно — слишком глубоко)\n\u002Fapi\u002Forder-items\u002F3\u002Freviews               (правильно)\n```\n\n4. **Используйте дефисы для разделения слов:**\n```\n\u002Fapi\u002Forder-items          (правильно)\n\u002Fapi\u002ForderItems           (неправильно)\n\u002Fapi\u002Forder_items          (неправильно)\n```\n\n5. **Используйте строчные буквы.**\n\n6. **Не используйте расширения файлов.** Формат определяется через заголовок `Accept`.\n\n7. **Используйте query-параметры для фильтрации, сортировки и пагинации:**\n```\nGET \u002Fapi\u002Fusers?status=active&sort=name&page=2&size=20\n```\n\n8. **Для действий вне CRUD используйте подресурсы-глаголы:**\n```\nPOST \u002Fapi\u002Fusers\u002F42\u002Factivate\nPOST \u002Fapi\u002Forders\u002F7\u002Fcancel\n```\n\n9. **Используйте префикс версии** (`\u002Fapi\u002Fv1\u002Fusers`).\n\n10. **Всегда используйте префикс `\u002Fapi`.**\n\n> **На собеседовании:** интервьюер ожидает знания основных правил: существительные, множественное число, дефисы, строчные буквы. Частая ошибка — использовать глаголы в URI (POST \u002Fapi\u002FcreateUser) или camelCase (\u002Fapi\u002ForderItems).","","junior",[15],"rest",[],null,{"title":19,"description":20,"ogTitle":19,"ogDescription":20,"keywords":21,"schemaAnswer":20,"featuredSnippetReady":22},"Каковы лучшие практики проектирования URI? — Gymterview","URI в REST API должны быть предсказуемыми, читаемыми и отражать структуру ресурсов, а не операции над ними.",[15,13],true]