https://ria.ru/20211205/voyna-1762191287.html
Германия объясняет, почему не хватило сил победить русских
Германия объясняет, почему не хватило сил победить русских — РИА Новости, 05.12.2021
Германия объясняет, почему не хватило сил победить русских
«Провал немецкого плана окружения и взятия Москвы». Такова была формулировка Совинформбюро, оглашенная Левитаном 13 декабря 1941 года. То есть спустя неделю… РИА Новости, 05.12.2021
2021-12-05T08:00
2021-12-05T08:00
2021-12-05T15:08
общество
авторы
ссср
тихвин
великая отечественная война (1941-1945)
ленинград
совинформбюро
керчь
/html/head/meta[@name=’og:title’]/@content
/html/head/meta[@name=’og:description’]/@content
https://cdnn21.img.ria.ru/images/149932/64/1499326416_0:143:3000:1831_1920x0_80_0_0_b9fb8a3716a9648233aeaa2b86806d93.jpg
«Провал немецкого плана окружения и взятия Москвы». Такова была формулировка Совинформбюро, оглашенная Левитаном 13 декабря 1941 года. То есть спустя неделю после перехода Красной армии в контрнаступление.Дата его начала, впрочем, колеблется. То называют 5 декабря, когда перешел в наступление Калининский фронт, то 6 декабря, когда по немцу ударили Западный и Юго-Западный фронты.Такой разнобой становится понятен, если взглянуть на карту. В момент своего максимального продвижения немец охватил Москву полудугой — от северо-запада до юго-запада. Расчет был на то, чтобы взять город в клещи, сомкнув кольцо окружения.Но при этом неприятелю (в данном случае — советской стороне) предоставляется возможность ударить по флангам растянутого фронта. Особенно если есть признаки, что наступление выдохлось. Именно это и сделал генерал Жуков, нанеся серию ударов по разным частям дуги.А уже 16 декабря была издана директива Гитлера. «Организация заградотрядов… Сжигать населенные пункты! Держать оборону и сражаться до последнего. Добровольно не отступать, ни шагу назад. Удерживать фронт до последнего солдата… Командующим, командирам и офицерам, лично воздействуя на войска, сделать все возможное, чтобы заставить их удерживать свои позиции и оказывать фанатически упорное сопротивление противнику, прорвавшемуся на флангах».Изрядный контраст по сравнению с предыдущими месяцами восточной кампании вермахта.Причем задним числом немецкие генералы признавали, что в данном случае Гитлер был прав. Его «фанатичный приказ, обязывавший войска стойко держаться на каждой позиции и в самых неблагоприятных условиях» объяснялся тем, что «Гитлер инстинктивно понял: любое отступление по снегам и льду через несколько дней приведет к распаду всего фронта, и тогда немецкую армию постигла бы та же участь, что и Великую армию Наполеона». Параллели с 1812 годом вообще были популярны у немцев. И даже до сих пор.В сегодняшних немецких газетах буквально дословно воспроизводятся почерпнутые из воспоминаний участников Восточного фронта описания ужасного русского климата: сперва чудовищная распутица, превращающая все дороги в непролазное болото, затем не менее страшные морозы. Автомобили и танки не заводятся, паровозы не тянут, снабжение разваливается, а о страданиях личного состава и говорить нечего.Что, в свою очередь, воспроизводит наполеоновскую идею «Только термометр, а не штык стал причиной гибели Великой Армии».Конечно, климат в России мог бы быть и помягче, и получше. Но тут есть два замечания. Во-первых, страдали от него не только немцы, но и русские. Генерал Мороз не разбирает. Кстати, и в кампанию 1812 года русская армия понесла в ходе вроде бы победного марша к границе очень чувствительные потери: из 130 тысяч до Вильны дошли 27 тысяч.Во-вторых, русский климат — это не военная тайна. Если германское командование не озаботилось заготовить зимнее обмундирование для войск и зимние ГСМ для техники, винить оно должно было только себя, а вовсе не Генерала Мороза.Впрочем, немецкие генералы винили не только климат, но и огрехи гитлеровского командования. Начав войну, вермахт продвигался по трем расходящимся направлениям: на север (Ленинград), на юг (Украина и Кавказ) и прямо на восток, то есть на Москву. Причем Гитлер никак не мог определиться, какое направление считать главным. На первоначальной стадии войны, когда все преимущества были у опытного и дисциплинированного вермахта, удар растопыренной пятерней не был столь губителен для немца — сил хватало на все направления. Но как только их стало не хватать, сразу сказался этот принципиальный просчет.Как бы то ни было, в эти самые дни декабря 1941 года вермахт понес первое серьезное поражение за всю историю существования. И не только под Москвой, где немец был отброшен на 150-200 километров от столицы. Что, правда, не так уж и много. В Москве имел хождение стишок:»Жил-был у бабушки серенький козлик,Сказка-то сказкой, а немцы-то — возле».Но еще было контрнаступление под Тихвином, не позволившее немцу охватить Ленинград уже совсем непроницаемым двойным кольцом блокады. Страдания ленинградцев все равно были ужасны, смертность от голода достигла пика в феврале 1942 года, но город выстоял.И было контрнаступление на юге. Удалось отбить Ростов-на-Дону, сделана попытка вернуть Восточный Крым (морские десанты в Судаке, Коктебеле, Феодосии и Керчи).На несколько зимних месяцев инициатива перешла в руки Красной армии, что также значило много. До тех пор ею монопольно владел вермахт.Но перелом в войне, о котором уже мечтали быстроумные головы (в том числе, похоже, и быстроумная голова товарища Сталина), не состоялся. Впереди были страшное лето 1942-го, катастрофа Южного фронта и немец под Сталинградом. Враг еще был очень силен.И все же тогда в белоснежных полях под Москвой впервые забрезжил отдаленный свет Победы. Мрак еще не ушел, но чуть-чуть рассеялся.
https://ria.ru/20211016/stalin-1754785883.html
https://ria.ru/20210420/glavarkhiv-1729030666.html
https://ria.ru/20210930/moskva-1750017936.html
https://ria.ru/20200206/1564368925.html
ссср
тихвин
керчь
россия
РИА Новости
internet-group@rian.ru
7 495 645-6601
ФГУП МИА «Россия сегодня»
https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/
2021
Максим Соколов
https://cdnn21.img.ria.ru/images/102132/50/1021325094_0:0:772:771_100x100_80_0_0_00368990cdfa1153b421f77aefd5ef9c.jpg
Максим Соколов
https://cdnn21.img.ria.ru/images/102132/50/1021325094_0:0:772:771_100x100_80_0_0_00368990cdfa1153b421f77aefd5ef9c.jpg
Новости
ru-RU
https://ria.ru/docs/about/copyright.html
https://xn--c1acbl2abdlkab1og.xn--p1ai/
РИА Новости
internet-group@rian.ru
7 495 645-6601
ФГУП МИА «Россия сегодня»
https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/
https://cdnn21.img.ria.ru/images/149932/64/1499326416_185:0:2816:1973_1920x0_80_0_0_0fba5af95ae991e0cff7b855b38ac1d3.jpg
РИА Новости
internet-group@rian.ru
7 495 645-6601
ФГУП МИА «Россия сегодня»
https://xn--c1acbl2abdlkab1og.xn--p1ai/awards/
Максим Соколов
https://cdnn21.img.ria.ru/images/102132/50/1021325094_0:0:772:771_100x100_80_0_0_00368990cdfa1153b421f77aefd5ef9c.jpg
общество, авторы, ссср, тихвин, великая отечественная война (1941-1945), ленинград, совинформбюро, керчь, без срока давности, россия
«Провал немецкого плана окружения и взятия Москвы». Такова была формулировка Совинформбюро, оглашенная Левитаном 13 декабря 1941 года. То есть спустя неделю после перехода Красной армии в контрнаступление.
Дата его начала, впрочем, колеблется. То называют 5 декабря, когда перешел в наступление Калининский фронт, то 6 декабря, когда по немцу ударили Западный и Юго-Западный фронты.
Такой разнобой становится понятен, если взглянуть на карту. В момент своего максимального продвижения немец охватил Москву полудугой — от северо-запада до юго-запада. Расчет был на то, чтобы взять город в клещи, сомкнув кольцо окружения.
Но при этом неприятелю (в данном случае — советской стороне) предоставляется возможность ударить по флангам растянутого фронта. Особенно если есть признаки, что наступление выдохлось. Именно это и сделал генерал Жуков, нанеся серию ударов по разным частям дуги.
А уже 16 декабря была издана директива Гитлера. «Организация заградотрядов… Сжигать населенные пункты! Держать оборону и сражаться до последнего. Добровольно не отступать, ни шагу назад. Удерживать фронт до последнего солдата… Командующим, командирам и офицерам, лично воздействуя на войска, сделать все возможное, чтобы заставить их удерживать свои позиции и оказывать фанатически упорное сопротивление противнику, прорвавшемуся на флангах».
Изрядный контраст по сравнению с предыдущими месяцами восточной кампании вермахта.
Причем задним числом немецкие генералы признавали, что в данном случае Гитлер был прав. Его «фанатичный приказ, обязывавший войска стойко держаться на каждой позиции и в самых неблагоприятных условиях» объяснялся тем, что «Гитлер инстинктивно понял: любое отступление по снегам и льду через несколько дней приведет к распаду всего фронта, и тогда немецкую армию постигла бы та же участь, что и Великую армию Наполеона». Параллели с 1812 годом вообще были популярны у немцев. И даже до сих пор.
В сегодняшних немецких газетах буквально дословно воспроизводятся почерпнутые из воспоминаний участников Восточного фронта описания ужасного русского климата: сперва чудовищная распутица, превращающая все дороги в непролазное болото, затем не менее страшные морозы. Автомобили и танки не заводятся, паровозы не тянут, снабжение разваливается, а о страданиях личного состава и говорить нечего.
Что, в свою очередь, воспроизводит наполеоновскую идею «Только термометр, а не штык стал причиной гибели Великой Армии».
Конечно, климат в России мог бы быть и помягче, и получше. Но тут есть два замечания. Во-первых, страдали от него не только немцы, но и русские. Генерал Мороз не разбирает. Кстати, и в кампанию 1812 года русская армия понесла в ходе вроде бы победного марша к границе очень чувствительные потери: из 130 тысяч до Вильны дошли 27 тысяч.
Во-вторых, русский климат — это не военная тайна. Если германское командование не озаботилось заготовить зимнее обмундирование для войск и зимние ГСМ для техники, винить оно должно было только себя, а вовсе не Генерала Мороза.
Впрочем, немецкие генералы винили не только климат, но и огрехи гитлеровского командования. Начав войну, вермахт продвигался по трем расходящимся направлениям: на север (Ленинград), на юг (Украина и Кавказ) и прямо на восток, то есть на Москву. Причем Гитлер никак не мог определиться, какое направление считать главным. На первоначальной стадии войны, когда все преимущества были у опытного и дисциплинированного вермахта, удар растопыренной пятерней не был столь губителен для немца — сил хватало на все направления. Но как только их стало не хватать, сразу сказался этот принципиальный просчет.
Как бы то ни было, в эти самые дни декабря 1941 года вермахт понес первое серьезное поражение за всю историю существования. И не только под Москвой, где немец был отброшен на 150-200 километров от столицы. Что, правда, не так уж и много. В Москве имел хождение стишок:
«Жил-был у бабушки серенький козлик,
Сказка-то сказкой, а немцы-то — возле».
Но еще было контрнаступление под Тихвином, не позволившее немцу охватить Ленинград уже совсем непроницаемым двойным кольцом блокады. Страдания ленинградцев все равно были ужасны, смертность от голода достигла пика в феврале 1942 года, но город выстоял.
И было контрнаступление на юге. Удалось отбить Ростов-на-Дону, сделана попытка вернуть Восточный Крым (морские десанты в Судаке, Коктебеле, Феодосии и Керчи).
На несколько зимних месяцев инициатива перешла в руки Красной армии, что также значило много. До тех пор ею монопольно владел вермахт.
Но перелом в войне, о котором уже мечтали быстроумные головы (в том числе, похоже, и быстроумная голова товарища Сталина), не состоялся. Впереди были страшное лето 1942-го, катастрофа Южного фронта и немец под Сталинградом. Враг еще был очень силен.
И все же тогда в белоснежных полях под Москвой впервые забрезжил отдаленный свет Победы. Мрак еще не ушел, но чуть-чуть рассеялся.
Глава 1
— Запомни, ничего серьезного, — произносит высокий шатен в кожаной куртке, садясь за мой столик. — Мне не нужны отношения. Только развлечься, и то на пару встреч.
Я замираю от его напора. Проваливаюсь в глубокие голубые глаза и пытаюсь заново осмыслить реальность.
О чем он вообще?
— Извините, а вы кто? — спрашиваю его.
— Ольга?
— Нет, — я качаю головой, — я Арина.
— Черт. — Он теряется на мгновение, но следом усмехается и проводит широченной ладонью по скатерти. — Кажется, я облажался и ошибся девушкой. Прости, крошка.
Мужчина поднимается и уходит так же быстро, как и появился.
Передо мной вновь оказывается пустой стул, который вообще-то ждет, когда его займет опаздывающая подруга. Мы договорились пообедать вместе, но пунктуальность — не ее сильная сторона.
— Прости, прости, прости, — налетает она со спины и сразу приобнимает за плечи. — Я долго ждала такси. Отменила машину из-за ужасного рейтинга водителя, а потом вечность ждала, когда найдут другого.
Ксюша бросает взгляд на стол, проверяя, что я заказала, и поднимает ладонь, чтобы обратить на себя внимание официанта. Я же обращаю внимание на другое.
Тот шатен действительно ошибся столиком.
Я замечаю его в противоположном конце. Он сидит лицом ко мне, вальяжно откинувшись на спинку диванчика, и что-то говорит девушке напротив. Ее я не вижу, только копну светлых шикарных волос, собранных в хвост.
Хотя почему что-то?
Скорее всего, с его губ сейчас слетает следующий текст — “Запомни, ничего серьезного. Мне не нужны отношения…”
— Ты чего смеешься? — Ксюша переключается на меня, закончив с заказом.
— Да так, — я отмахиваюсь.
— На того красавчика засмотрелась? — она понижает голос до флиртующего шепота. — Бросается в глаза, гад. Я тоже залипла, когда вошла.
Она порывается обернуться, но в последний момент тормозит. Незнакомец симпатичный и видный, тут не поспоришь, но я размышляю о другом. Как меня можно было спутать с блондинкой?
— Я его еще на парковке заметила…
— Вот ты внимательная.
— Я в активном поиске, — чуть ли не с гордостью заявляет подруга. — Пока таксист искал, где приткнуться, я этого мажорчика хорошо разглядела. У него спортивная тачка. Люто дорогая.
— Очень ценная информация.
Незнакомец отдает меню официанту и кладет ладони на стол. Он подвигается, приближаясь к блондинке, но неожиданно уводит взгляд в сторону.
Черт!
Он смотрит четко на меня, словно кожей почувствовал мое внимание. Наши глаза встречаются, заставляя судорожно схватить воздух губами. Но я слишком упрямая, чтобы отвести взгляд и показать, что меня поймали с поличным.
Вместо этого я отсчитываю секунды.
Он, конечно, хам. Сидит с девушкой и с чистой совестью пялится на другую. Даже не думает переключить интерес на свою спутницу.
— Лучше расскажи, как у тебя дела? — спрашиваю Ксюшу, сдаваясь первой и разрывая зрительный контакт с мужчиной.
Посмотрели и хватит.
Он богатый, наглый и ищет красотку на пару ночей.
На что там глядеть?
— Я закончила курсы у ведущего мастера, — Ксюша довольно улыбается. — Дорого, конечно, но я теперь могу устроиться в салон на Листова.
Она машинально смотрит на мои брови, на которые давно покушается.
— Не надо, — я качаю головой, чтобы она не начала уговаривать меня с тридцатой попытки. — У нас с тобой разные вкусы, мы это уже выяснили.
— Они у тебя густые и офигенные. Можно такую форму сделать, а если еще зачесать наверх, как сейчас модно!
Тридцать первая попытка.
— Вот откроешь свой салон, поговорим, — я мотивирую ее на карьерный рост, как могу.
— Ладно, ясно, — она со смешком падает на спинку стула. — У тебя как на работе?
— Сказали, подтянуть английский. К нам должна приехать группа из Швеции, — я развожу руками. — Без языка никуда.
Мы сидим в кафе около двух часов. Потом я отвожу подругу к клиентке, а сама поворачиваю в сторону дома. Я снимаю квартиру в тихом районе, в котором когда-нибудь надеюсь купить свою собственную. Ну или не надеюсь, а мечтаю.
— Здравствуйте, — бросаю знакомой соседке, заходя в лифт.
Через несколько минут я оказываюсь дома. На столе стоит ноутбук, я переодеваюсь и сажусь за него, чтобы пощелкать пару уроков по английскому. Не хочется потом краснеть на ресепшн в отеле, когда к нам будут заселяться шведы. Время пролетает незаметно, я понимаю, что засиделась, когда на часах уже значится час ночи.
Я отключаю будильник в честь выходного и иду спать.
Правда, выспаться мне не дают.
Звонок в дверь вырывает подушку из-под головы и заставляет идти в прихожую.
Если это эксклюзивное предложение высокоскоростного интернета, я кого-нибудь убью.
Или наша уборщица, которой понадобилась подпись жильца.
Или…
Ох!
Я смотрю в глазок и вижу там шатена, который вчера ошибся столиком.
Дверью он тоже ошибся?
**
Девочки, поддержите новинку!)) Лайк, коммент, библиотека и автор оооочень хочет писать дальше))
Это история Максима, брата Вадима из Фиктивного развода. Если кто-то не читал Развод, это необязательно, история будет самостоятельной. После событий Фиктивного развода прошел год.
В аукционах может принять участие любой человек, не только юридические лица — достаточно иметь электронную подпись для участия в соревновании за лот. Но если хочется приобрести автомобиль «для себя», на ходу и в приличном состоянии, потребуется перебрать сотни вариантов, большинство из которых совсем неликвид.
«Покупка автомобиля на торгах по банкротству для собственной эксплуатации имеет смысл, а вот покупать автомобиль для перепродажи — нет», — говорит директор компании по тендерному сопровождению «СтарТендер» Никита Панкин.
По его словам, цена, как правило, ниже на 5-10%, чем на вторичном рынке, но могут возникнуть проблемы при получении имущества — его некомплект и состояние, которое обычно хуже, чем в среднем по рынку.
Какие автомобили попадают на торги
На торги выставляют бесхозные автомобили, конфискат, арестованное движимое имущество, транспорт банкротов и машины в залоге.
Чаще всего покупателями бесхозных авто являются перекупщики, говорит Никита Панкин: «Они приводят автомобиль в надлежащий вид и затем продают по рыночным ценам. Следующая категория покупателей — люди, приобретающие транспортное средство для личных целей. И последняя — это те, кто покупает машины, находящиеся в неисправном виде для разбора на запчасти».
Что касается конфиската, то эти лоты привлекают покупателей хорошей ценой, но иногда с оформлением автомобиля в собственность могут возникать трудности. Машины банкротов часто продаются в приличном состоянии, но на них может быть наложен арест или другие обременения.
Где искать информацию о торгах
Реализуются автомобили в электронном виде, то есть все торги проходят онлайн. В России действует около 60 площадок, которые специализируются на аукционах. При этом на них может продаваться как государственное и муниципальное имущество, так и имущество банкротов.
Информацию обо всех проводимых аукционах можно найти на сайте torgi.gov.ru. Портал содержит описание каждого лота, его начальную цену, даты проведения торгов и сведения о площадке, которая проводит аукцион.
Фото: Shutterstock
Но удобнее использовать сайты-агрегаторы, которые собирают лоты по всей стране. Помимо этого, есть и отдельные реестры. Информация об арестованном имуществе публикуется ежедневно на сайте службы судебных приставов. На портале Единого федерального реестра сведений о банкротстве (bankrot.fedresurs.ru), соответственно, размещаются сведения обо всех процессах о несостоятельности должников.
Сайтов-агрегаторов много, но можно выделить одни из самых крупных. «Торги России» (торги-россии.рф) — бесплатный сервис, где можно найти актуальную информацию об аукционах, которые сейчас проводят во всех регионах страны. Портал tbankrot.ru — платный ресурс, минимальная цена подписки — 1500 рублей.
Как принять участие в аукционе
Приобрести машину на торгах может любой желающий — физические и юридические лица, а также индивидуальные предприниматели, неважно, граждане России и иностранцы. Если потенциальный покупатель не уверен в своих шансах найти и купить автомобиль, он вправе воспользоваться специализированной компанией, которая может помочь в выборе и оформлении документов.
4 этапа организации процесса торгов по автомобилям:
- Сначала автомобиль проходит техническую экспертизу и профессиональную оценку, так определяется его рыночная стоимость.
- На втором этапе машина выставляется на продажу банком, через аукцион или через специализированную интернет-площадку.
- Затем, если в течение 2-3 месяцев автомобиль не продается, его цена снижается. Это тот самый момент, когда можно купить авто значительно дешевле рынка.
- На последнем этапе, потенциальный покупатель в срок до 10 дней оплачивает стоимость машины и становится ее новым собственником (если нет препятствий к этому).
Фото: Annette Riedl /dpa-Zentralbild / Global Look Press
Если говорить о конкретном способе покупки автомобиля, то банкротные торги привлекают наибольшее внимание, отмечает Никита Панкин. Они состоят из двух основных этапов: аукциона на повышение, когда выигрывает тот, кто предложил наибольшую цену, и публичного предложения, когда стоимость идет на понижение. Побеждает тот, кто предложил наибольшую цену на определенном этапе. Большая часть банкротного имущества реализуется именно на этапе публичного предложения, потому что снижение цены может составлять до 70%, добавляет специалист.
Риски и сложности при покупке авто на торгах
Есть несколько проблем, которые могут отпугнуть неопытного покупателя. Во-первых, не всегда есть возможность осмотреть автомобиль, хорошие варианты появляются в разных регионах. Кроме этого, часто за осмотр объекта требуют плату — иногда тысячу рублей, иногда и все пять тысяч. Принимать решение придется с минимумом информации, это может быть отчет оценщика, и несколько фото, иногда ужасного качества, говорит Панкин. Во-вторых, необходимо проверить автомобиль на скрытые риски.
В 80% случаев автомобиль, продающийся на торгах по банкротству, находится под арестом, и для его снятия необходимо обращаться к приставам, рассказывает Никита Панкин. Одна из главных опасностей покупки подобного автотранспорта заключается в том, что иногда процедура изъятия проводится неправильно. В этом случае бывший собственник имеет право обжаловать незаконный арест в суде. «Деньги за покупку, конечно, вернут, но разбирательство займет много времени. Поэтому перед покупкой автомобиля под арестом важно внимательно проверить всю документацию и техническое состояние транспорта», — добавляет эксперт.
Фото: Harry Hart /imageBROKER / Global Look Press
Покупателю конфиската, в свою очередь, тоже может попасться машина со скрытыми рисками. Например, автомобиль в залоге, числится в угоне или фигурирует в каком-либо уголовном деле, не растаможен, нелегально пригнан из-за рубежа, не был поставлен на учет. Еще варианты: за бывшим владельцем числятся штрафы или на машину претендуют третьи лица. Во всех этих случаях возникнут трудности с оформлением автомобиля в собственность. Покупателю придется обращаться в суд или выплачивать долги за предыдущего хозяина. При этом велики шансы остаться без машины и без денег.
«Первое, что следует сделать перед покупкой конфискованного автомобиля, — внимательно прочитать договор. Желательно, чтобы в нем было прямо прописано, что все ограничения будут сняты и на нового владельца не распространятся. Второе условие — тщательно проверить историю автомобиля, чтобы защитить себя от скрытых рисков», — советует Панкин.
r1c0
Я разработчик и большую часть моей карьеры я строю API различных сервисов. Рекомендации для этой статьи были собраны на основе наиболее часто встречающихся проблем при проектировании своего сервиса в команде или использовании сторонних API.
Скорее всего, вы сталкивались с провайдерами ужасного API. Работа с ними, как правило, сопряжена c повышенной эмоциональностью и недопониманием. Большую часть таких проблем можно избежать, проектируя интерфейс приложения, используя советы ниже.
1. Не используйте глаголы в URL *
* — если это одна из CRUD-операций.
За действие с ресурсом отвечают CRUD-методы запроса: POST — создать (create), GET — получить (read), PUT/PATH — обновить (update), DELETE — удалить (ну вы поняли). Плохо:
POST /users/{userId}/delete - удаление пользователя
POST /bookings/{bookingId}/update - обновление бронировки
Хорошо:
DELETE /users/{userId}
PUT /bookings/{bookingId}
2. Используйте глаголы в URL
Плохо:
POST /users/{userId}/books/{bookId}/create - добавить книгу пользователю
Хорошо:
POST /users/{userId}/books/{bookId}/attach
POST /users/{userId}/notifications/send - отправить уведомление пользователю
3. Выделяйте новые сущности
Выше есть пример добавления книги пользователю, возможно, логика вашего приложения подразумевает список избранного, тогда роут может быть и таким:
POST /wishlist/{userId}/{bookId}
4. Используйте один идентификатор ресурса *
* — если ваша структура данных это позволяет.
Это значит если у вас есть записи вида один ко многим, например
бронь -> путешественники (booking->travellers), вам будет достаточно передавать в запросе идентификатор путешественника.
Плохо:
# получение данных путешественника
GET /bookings/{bookingId}/travellers/{travellerId}
Хорошо:
GET /bookings/travellers/{travellerId}
Также замечу, что /bookings/travellers/
лучше, чем просто /travellers
. Хорошо придерживаться иерархии данных в своем API.
5. Все ресурсы во множественном числе
Плохо:
GET /user/{userId} - получение данных пользователя
POST /ticket/{ticketId}/book - бронирование билета
Хорошо:
GET /users/{userId}
POST /tickets/{ticketId}/book
6. Используйте HTTP-статусы по максимуму
Самый простой способ обработки ошибок — это ответить соответствующим кодом состояния. В большинстве случает один этот статус может дать исчерпывающую информацию о результате обработки запроса. Одни из самых распространенных кодов ответов:
-
400 Bad Request — клиент отправил неверный запрос, например, отсутствует обязательный параметр запроса.
-
401 Unauthorized — клиенту не удалось пройти обязательную аутентификацию на сервере для обработки запроса.
-
403 Forbidden — клиент аутентифицирован, но не имеет разрешения на доступ к запрошенному ресурсу.
-
404 Not Found — запрошенный ресурс не существует.
-
409 Conflict — этот ответ отправляется, когда запрос конфликтует с текущим состоянием сервера.
-
500 Internal Server Error — на сервере произошла общая ошибка.
-
503 Service Unavailable — запрошенная услуга недоступна.
7. Модификаторы получения ресурса
Логика построения роутов может быть не связана с архитектурой проекта или структурой базы данных. Например, в бд есть викторины и пройденные викторины — две отдельные таблицы (quizzes и passed_quizzes). Но для апи это могут быть просто викторины, а пройденные викторины это модификатор.
Пример: /quizzes
и /quizzes/passed
. Здесь quizzes
— ресурс (викторины), passed
— модификатор (пройденные).
Плохо:
GET /passed-quizzes - получение пройденных викторин
GET /booked-tickets - получение забронированных билетов
POST /gold-users - создание премиум пользователя
Хорошо:
GET /tickets/booked
POST /users/gold
8. Выберите одну структуру ответов
Когда на два запроса к API может быть получен совсем разный по структуре ответ — это грустно. Старайтесь сформировать одну четкую структуру, которой всегда будете придерживаться. Будет круто еще включить служебные поля, несущие дополнительную информацию.
Плохо:
GET /book/{bookId}
{
"name": "Harry Potter and the Philosopher's Stone",
"genre": "fantasy",
"status": 0, # статус вашего приложения
"error": false,
...
}
Хорошо:
GET /book/{bookId}
{
"status": 0,
"message": "ok",
"data": {...}
}
В этом примере 3 поля универсальны и могут использоваться для любого ответа от апи. status
, message
— собственный статус и сообщение приложения по которому клиент сможет ориентироваться, эти поля сообщат ему дополнительную информацию о процессе обработки запроса, но не данные ресурса. Например, в нашем приложении в один момент времени, пользователь может проходить только одну викторину. Тогда запрос на начало новой может выдать 409-й статус, а в полях status
и message
— дополнительную информацию, почему была получена ошибка.
9. Все параметры и json в camelCase
9.1 В параметрах запросов
Плохо:
GET /users/{user-id}
GET /users/{user_id}
GET /users/{userid}
Хорошо:
GET /users/{userId}
POST /ticket/{ticketId}/gold
9.2 В теле ответа или принимаемого запроса
Плохо:
{
"ID": "fb6ad842-bd8d-47dd-b7e1-68891d8abeec",
"Name": "soccer3000",
"provider_id": 1455,
"Created_At": "25.05.2020"
}
Хорошо:
{
"id": "fb6ad842-bd8d-47dd-b7e1-68891d8abeec",
"name": "soccer3000",
"providerId": 1455,
"createdAt": "25.05.2020"
}
10. Пользуйтесь Content-Type
Плохо:
GET /tickets.json
GET /tickets.xml
Хорошо:
GET /tickets
// и в хедере
Сontent-Type: application/json
// или
Сontent-Type: application/xml
Заключение
Перечисленные выше рекомендации это далеко не весь список способов сделать API лучше. Для дальнейшего изучения рекомендую разобрать спецификации REST API и список кодов http-статусов (вы удивитесь, насколько их много и какие ситуации они охватывают).
А в комментариях предлагаю написать свою рекомендацию по построению REST API, которую вы считаете важной.