Отдыхе: Россиянка побывала на Мальдивах и развеяла миф о пафосном отдыхе: Мир: Путешествия: Lenta.ru
Как защититься от отравлений на отдыхе?
Побеседуем об отдыхе и как обезопасить себя и наших детей от неприятностей. В гостях у нас Глазырина Наталья Владимировна, врач педиатр и детский гастроэнтеролог сети многопрофильных клиник «Здоровье 365». Здравствуйте!
— Здравствуйте!
У нас в самом разгаре сезон отпусков. В связи с этим много вопросов: что может подстерегать нас на отдыхе?
— На отдыхе опасностей очень много. Вне зависимости от того, где вы отдыхаете – в России или за границей, на природе или в санатории, — первое, конечно, это смена климата, уровня влажности воздуха, если вы едете на юг. Это влияет на наш иммунитет, тем самым ослабляя организм.
Второе – это питание. Это и качество питания как таковое, и быстро портящиеся в жару продукты. В дальних странах – экзотические фрукты и в целом непривычная для нашего организма пища, которая может вывести его из состояния покоя.
А какие самые распространенные жалобы бывают у тех, кто вернулся с отдыха? Особенно, у детей?
— Боли в животе, метеоризм, тошнота, рвота, жидкий стул. Если присоединяется инфекционный процесс, может быть высокая температура, вялость, слабость, потеря аппетита.
То есть это такие «звоночки», что что-то не так.
— Да, если неприятные симптомы ограничиваются тошнотой и жидким стулом, это еще более-менее. Тут можно справиться обычными средствами, иногда даже просто диетой.
А если повышается температура, мучает многократная рвота, тут, конечно, надо незамедлительно обращаться к врачу.
Наталья Владимировна, а порекомендуйте, что взять с собой в отпуск из медикаментов?
— Приведу самый минимум, причем который можно взять на отдых не только в России, но и за рубеж – эти препараты разрешены к вывозу. Во-первых, это сорбенты: «Смекта», «Лактофильтрум», «Энтеросгель», «Полисорб», которые принимают за 1,5-2 часа до/после еды или приема других медикаментов. Также кишечные антисептики: «Энтерофурил», «Стопдиар», «Энтерол», которые пьют при диарее. На случай повышения температуры – препараты, ее снижающие. И ферменты: «Креон», «Пангрол», «Мезим Форте», помогающие при несварении. Это все можно взять и за границу.
А скажите, на что вообще реагирует наш организм на отдыхе?
— Тут причин много. Во-первых, жара. Стрессовые ситуации при переезде, обустройстве на новом месте. Смена климата, режима дня, качества питания и, особенно, воды, которая и по химическому составу, и по микробному отличается от нашей.
К тому же, на пляже среди сотен отдыхающих наверняка найдется не один носитель инфекционного заболевания, которым сам не болеет, но распространяет его вокруг себя.
Поэтому на природе так важно мыть руки.
— Верно: мыть руки. Если нет возможности, нужно иметь с собой салфетки влажные, гель антисептический для обработки рук.
И пить только бутилированную воду.
— Обязательно. Причем важна не только вода, которую мы пьем. Но и в которой моем фрукты и овощи, умываемся, чистим зубы. Это все тоже попадаем к нам в организм. Поэтому желательно использовать только бутилированную воду вообще для всех нужд.
Мы обсудили советы, как избежать отравления. А что делать, если оно уже случилось? Какие-то симптомы уже появились – тошнота, рвота…
— Если это легкое состояние, не угрожающее жизни и у вас есть с собой набор медикаментов, которые я перечислила, вы можете ими воспользоваться. Но если это многократная рвота, жидкий стул, подъем температуры, тут уже нужна только консультация врача и прописанное им лечение. Самим тут уже не справиться – это, скорее всего, инфекционный процесс.
Через сколько обращаться: день-два если рвота?
— Если на второй день рвота не прекращается. Особенно, если это маленький ребенок, у него обезвоживание может наступить за сутки.
Понятно. Будьте внимательны, уважаемые родители. Отдых – отдыхом, но здоровье все-таки важнее.
— Если у вас маленький ребенок и есть возможность, питание лучше везти с собой: смеси, баночки. Потому что взять даже фруктовое пюре: оно есть везде. Но качество приготовления этого пюре, технология – абсолютно разные. И то, к чему привык ребенок у нас, может не подойти ему за границей. Поэтому если есть возможность, берите с собой.
В общем, отдыхать надо с головой. И, наверное, не лишним будет оформить страховку.
— Страховку обязательно. И прививки. Чаще всего на отдыхе можно подхватить ротавирусные инфекции. А у нас сейчас есть от них прививки.
Прививки, правильное питание и список лекарств, необходимых для первой помощи. Наталья Владимировна, спасибо вам большое за ценные советы!
Как сэкономить на отдыхе 90% денег, ни в чем себе не отказывая
Рекомендуем:
Хотите хорошо отдохнуть, да еще и денег сэкономить? Оказывается это совсем не так сложно, как кажется поначалу. Итак, мы хотим отдохнуть с комфортом и удовольствием, потратив минимум денег. Что для этого необходимо?
Основная статья затрат это проживание и питание.
Начнем с проживания. Можно подобрать совершенно шикарный отель по бросовым ценам, если это будет новый отель. Обычно хозяева, открывая новую гостиницу, стараются цены не завышать, чтобы выдержать конкуренцию, это обычно бывает у новичков туристического бизнеса. Но выбирая для себя нововыстроенный отель, будьте готовы к тому, что, возможно, двор еще не благоустроен или не заасфальтирована автостоянка. Однако, делать ставку на то, что во всех новых отелях цены будут занижены не стоит, здесь нужно поискать-постараться. Цена на отдых будет ниже в разы, если бронировать отдых, делая предоплату в январе или феврале.
Ваше проживание будет совершенно бесплатным, если вы наполните свой отдых романтикой и разобьете палатку, где-нибудь на берегу, вдали от шума и городской суеты, наслаждаясь чистотой лазурного моря. Заметьте, что отдых в палатке на пляже Анапы не имеет ничего общего от подобного отдыха в лесу или горах. Пять минут езды на автомобиле и вся необходимая инфраструктура перед вами: магазины, кафе, возможность принять душ. Именно поэтому, здесь больше романтики, нежели экстрима. А как отдыхали гости нашего сайта в палатке прошлым летом, вы можете почитать в отзыве Эны.
Теперь питание. Путевка с питанием стоит значительно дороже, поэтому весьма разумно будет питаться самостоятельно. Обычно в частных гостиницах хозяева предоставляют кухню, чтобы можно было готовить. Покупая продукты на рынке, не стесняйтесь торговаться. Начинайте снижать стоимость вдвое, это выглядит ошеломляюще, но зачастую продавцы, увидев, как вы собираетесь уйти, готовы скинуть вам 40% стоимости, а то и половину. На рынках ведь тоже конкуренция и всего в избытке. Второй вариант, это выяснить, где на курорте находится оптовый рынок. Цены там удивят вас настолько приятно, что даже трудно заранее представить. Минимум затрат по питанию — это привезти запас продуктов с собой, если вы планируете ехать отдыхать на машине.
И о развлечениях. Понятно, что аттракционы стоят недешево, но иногда они совершенно бесплатны. Если выбирать для отдыха период вереницы праздников, традиционно отмечающихся на курорте, то ваши дети могут покататься на некоторых бесплатных аттракционах. В Анапе такие праздники не редкость. Это день города или череда фестевалей, сопровождающихся массовыми гуляниями, фейерверками, эксклюзивными дегустациями. Концерты известных россиийских коллективов в этот период проводятся на открытой сцене на центральной площади города, совершенно бесплатно. Как видите, снизить затраты на отдых можно практически до минимума. Главное грамотно планировать отпуск, заранее досканально изучив особенности приглянувшегося курорта и, конечно, отдыхать с неизменным желанием получать от отдыха только удовольствие!
Ещё статьи по теме:
- Отдых в Анапе
- Витязево
- Джемете
- Сукко
- Утриш
- Благовещенская
- Санатории Анапы
- Пансионаты Анапы
- Анапа гостиницы
- Анапа цены
- Черное море
- История Анапы
- Как сэкономить на отдыхе 90% денег, ни в чем себе не отказывая.
- Как похудеть за две недели на курорте без диеты.
- КУРОРТ АНАПА
- Лечение в Анапе
- Почему акулы в Анапе не едят людей?
© 2003-2023 Анапа-курорт.ру
Копирование материалов сайта запрещено
Размещение рекламы на сайте: +7(918)443-56-70 [email protected]
Адрес офиса в Анапе: г. Анапа, ул. Промышленная, д.4/2, тел/факс: 8(86133)9-00-29
Понедельник-пятница: 10:00 — 17:00. Суббота-воскресенье: выходной. Политика конфиденциальности
HTTP-методы — REST API Tutorial
REST API позволяют разрабатывать все виды веб-приложений со всеми возможными операциями CRUD (создание, извлечение, обновление, удаление).
Руководящие принципы REST предлагают использовать определенный метод HTTP для определенного типа вызова на сервер (хотя технически возможно нарушить это руководство, но это крайне не рекомендуется).
Используйте приведенную ниже информацию, чтобы найти подходящий метод HTTP для действия, выполняемого API.
Содержание HTTP ПОЛУЧИТЬ HTTP-ПОСТ HTTP ПОЛОЖИТЬ HTTP УДАЛИТЬ HTTP-патч Краткое содержание Глоссарий
1. HTTP GET
Используйте GET запросы только для получения представления/информации ресурса – и никоим образом не изменяйте его. Поскольку запросы GET не изменяют состояние ресурса, говорят, что это безопасных методов .
Кроме того, API GET должны быть идемпотентными. Выполнение нескольких идентичных запросов должно давать один и тот же результат каждый раз, пока другой API (POST или PUT) не изменит состояние ресурса на сервере.
Если Request-URI относится к процессу создания данных, то в качестве объекта в ответе должны быть возвращены произведенные данные, а не исходный текст процесса, если только этот текст не является результатом процесса .
1.1. Коды ответа GET API
- Для любого данного HTTP GET API, если ресурс найден на сервере, он должен вернуть код ответа HTTP
200 (ОК)
— вместе с телом ответа, которое обычно представляет собой XML или JSON. контент (из-за их независимой от платформы природы). - Если ресурс НЕ найден на сервере, API должен вернуть код ответа HTTP
404 (НЕ НАЙДЕН)
. - Аналогичным образом, если будет установлено, что сам запрос GET сформирован неправильно, сервер вернет код ответа HTTP
400 (ПЛОХОЙ ЗАПРОС)
.
1.2. Примеры URI
HTTP GET http://www.appdomain.com/users
HTTP GET http://www.appdomain.com/users?size=20&page=5
HTTP GET http://www.appdomain.com/users/123
HTTP GET http://www.appdomain.com/users/123/адрес
2. HTTP POST
Используйте POST API для создания новых подчиненных ресурсов , например, файл подчинен каталогу, содержащему его, или строка подчинена таблице базы данных.
Говоря строго о REST, методы POST используются для создания нового ресурса в наборе ресурсов.
Ответы на этот метод не подлежат кэшированию , если ответ не включает соответствующие поля заголовка Cache-Control или Expires.
Обратите внимание, что POST не является ни безопасным, ни идемпотентным.
2.1. Коды ответов POST API
- В идеале, если ресурс был создан на исходном сервере, ответ ДОЛЖЕН быть кодом ответа HTTP 201 (Создано) и содержать сущность, описывающую статус запроса и ссылающуюся на новый ресурс, и заголовок местоположения.
- Во многих случаях действие, выполняемое методом POST, может не привести к получению ресурса, который можно идентифицировать по URI. В этом случае подходящим статусом ответа является либо код ответа HTTP
200 (ОК)
, либо204 (нет содержимого)
.
2.2. Примеры URI
HTTP POST http://www.appdomain.com/users
HTTP POST http://www.appdomain.com/users/123/accounts
3. HTTP PUT
Используйте PUT API в первую очередь для обновления существующего ресурса (если ресурс не существует, API может решить создать новый ресурс или нет) .
Если запрос проходит через кеш, а Request-URI идентифицирует один или несколько объектов, находящихся в настоящее время в кеше, эти записи СЛЕДУЕТ рассматривать как устаревшие. Ответы на метод PUT не кэшируются .
3.1. Коды ответов PUT API
- Если новый ресурс был создан с помощью PUT API, исходный сервер ДОЛЖЕН информировать пользовательский агент с помощью кода ответа HTTP
201 (Создано)
. - Если существующий ресурс изменен, либо
200 (ОК)
или204 (Нет содержимого
) коды ответов ДОЛЖНЫ быть отправлены, чтобы указать на успешное выполнение запроса.
3.2. Примеры URI
HTTP PUT http://www.appdomain.com/users/123
HTTP PUT http://www.appdomain.com/users/123/accounts/456
Разницу между API POST и PUT можно наблюдать в URI запроса. Запросы POST выполняются для коллекций ресурсов, тогда как запросы PUT выполняются для одного ресурса.
4. HTTP УДАЛИТЬ
Как следует из названия, DELETE API удаляют ресурсы (идентифицируемые Request-URI).
Операции DELETE являются идемпотентными . Если вы УДАЛИТЕ ресурс, он будет удален из коллекции ресурсов.
Некоторые могут возразить, что это делает метод DELETE неидемпотентным. Это вопрос обсуждения и личного мнения.
Если запрос проходит через кеш, а Request-URI идентифицирует один или несколько объектов, находящихся в настоящее время в кеше, эти записи СЛЕДУЕТ рассматривать как устаревшие. Ответов на этот метод не кэшируется .
4.1. Коды ответов DELETE API
- Успешным ответом на запросы DELETE СЛЕДУЕТ быть ответ HTTP
с кодом 200 (ОК)
, если ответ включает объект, описывающий состояние. - Статус должен быть
202 (Принято)
, если действие поставлено в очередь. - Статус должен быть
204 (Нет содержимого)
, если действие было выполнено, но ответ не включает объект. - Повторный вызов DELETE API для этого ресурса не изменит результат, однако повторный вызов DELETE для ресурса вернет ошибку 404 (НЕ НАЙДЕН), поскольку он уже был удален.
4.2. Примеры URI
HTTP DELETE http://www.appdomain.com/users/123
HTTP DELETE http://www.appdomain.com/users/123/accounts/456
5. HTTP PATCH
Запросы HTTP PATCH для частичного обновления ресурса.
Если вы видите, что запросы PUT также изменяют сущность ресурса. То есть, чтобы быть более точным, метод PATCH является правильным выбором для частичного обновления существующего ресурса, и вы должны использовать PUT только в том случае, если вы полностью заменяете ресурс.
Обратите внимание, что если вы решите использовать PATCH API в своем приложении, возникнут некоторые проблемы:
Поддержка PATCH в браузерах, серверах и платформах веб-приложений не универсальна. IE8, PHP, Tomcat, Django и многие другие программы не поддерживают его или не поддерживают.
Полезная нагрузка запроса PATCH не так проста, как для запроса PUT. например
HTTP GET /users/1
дает следующий ответ:
{ "id": 1, "username": "admin", "email": "[email protected]"}
Пример запроса исправления для обновления электронной почты будет выглядеть следующим образом:
HTTP PATCH /users/1
[{ "op": "replace", "path": "/email", "value": "[email protected]" }]
Возможны следующие операции в соответствии со спецификацией HTTP.
[
{ "op": "тест", "путь": "/a/b/c", "значение": "foo" },
{ "op": "удалить", "путь": "/a/b/c" },
{ "op": "добавить", "path": "/a/b/c", "value": [ "foo", "bar" ] },
{ "op": "заменить", "path": "/a/b/c", "value": 42 },
{ "op": "переместить", "из": "/a/b/c", "путь": "/a/b/d" },
{ "op": "копировать", "из": "/a/b/d", "путь": "/a/b/e" }
]
Метод PATCH не заменяет методы POST или PUT. Он применяет дельту (diff), а не заменяет весь ресурс.
6. Обзор HTTP-методов
В таблице ниже приводится сводка использования HTTP-методов, рассмотренных выше.
Метод HTTP | CRUD | 5 Ресурс коллекции (например, 0194 | Один ресурс (например, /users/123) | |||
---|---|---|---|---|---|---|
POST | Создать | g. /users)»> | 201, содержащую новый идентификатор идентификатора пользователя/, {создано) с новым идентификатором идентификатора пользователя/ | Избегайте использования POST на один ресурс | ||
GET | Чтение | 200 (ОК), список пользователей. Используйте разбиение на страницы, сортировку и фильтрацию для навигации по большим спискам | 200 (ОК), один пользователь. 404 (не найдено), если идентификатор не найден или недействителен. ресурса | 200 (ОК) или 204 (Нет содержимого). Используйте 404 (не найдено), если идентификатор не найден или недействителен0002 Частичное обновление/изменение | g. /users)»> | 200 (ОК) или 204 (Нет содержимого). Используйте 404 (Not Found), если ID не найден или недействителен |
DELETE | Delete | 405, если вы не хотите использовать всю коллекцию, если вы не хотите использовать всю коллекцию, осторожность | 200 (ОК). 404 (не найдено), если идентификатор не найден или недействителен |
7. Глоссарий
7.1. Безопасные методы
Методы запросов считаются безопасными , если их определенная семантика по существу доступна только для чтения. Клиент не запрашивает и не ожидает каких-либо изменений состояния на исходном сервере в результате применения безопасного метода к целевому ресурсу.
Методы GET, HEAD, OPTIONS и TRACE считаются безопасными методами . Согласно спецификации HTTP, методы GET и HEAD следует использовать только для получения представлений ресурсов, и они не обновляют/удаляют ресурс на сервере.
Цель разграничения безопасных и небезопасных методов состоит в том, чтобы позволить автоматизированным процессам поиска (паукам) и оптимизации производительности кэша (предварительной выборке) работать, не опасаясь причинения вреда.
Безопасные методы позволяют пользовательским агентам представлять другие методы, такие как POST, PUT и DELETE , уникальным образом, чтобы пользователь был осведомлен о том, что запрашивается возможно небезопасное действие, и они могут обновлять/ удалить ресурс на сервере и поэтому следует использовать осторожно.
7.2. Идемпотентные методы
Термин идемпотент используется в более широком смысле для описания операции, которая даст одинаковые результаты при однократном или многократном выполнении .
В спецификации HTTP методы PUT, DELETE и безопасные ( GET, HEAD, OPTIONS, TRACE ) являются идемпотентными методами .
Идемпотентность — удобное свойство во многих ситуациях, так как оно означает, что операцию можно повторять или повторять столько раз, сколько необходимо, не вызывая непреднамеренных эффектов.
Для неидемпотентных операций алгоритму может потребоваться отслеживать, была ли операция уже выполнена или нет.
Как и определение безопасных методов , свойство идемпотента применяется только к тому, что было запрошено пользователем; сервер может регистрировать каждый запрос отдельно или сохранять историю контроля версий.
Ссылки:
https://www.w3.org/Protocols/rfc2616/rfc2616.txt
http://tools.ietf.org/html/rfc6902
https://en.wikipedia.org/wiki/ Идемпотентность#Computer_science_meaning
Как спроектировать REST API
Изучение REST по частям — это одно, а применение всех этих концепций к реальной разработке приложений — совершенно другая задача.
Этот учебник научит нас разрабатывать REST API для сетевого приложения. Обратите внимание, что вывод из всего этого упражнения заключается в изучении того, как применять принципы REST в процессе разработки приложений .
1. Определение ресурсов – объектное моделирование
Первым шагом в разработке приложения на основе REST API является определение объектов, которые будут представлены как ресурсов .
Для сетевого приложения объектное моделирование намного проще. Может быть много вещей, таких как устройств, управляемых объектов, маршрутизаторов, модемов и т. д. Для простоты мы рассмотрим только два ресурса, т.е.
- Устройства
- Конфигурации
Устройство. Устройство может иметь множество параметров конфигурации.
Обратите внимание, что оба объекта/ресурса в нашей приведенной выше модели будут иметь уникальный идентификатор, который является целочисленным свойством id
.
2. Создать URI модели
Теперь, когда объектная модель готова, пришло время определить URI ресурсов. На этом этапе при разработке URI ресурсов сосредоточьтесь на отношениях между ресурсами и их подресурсами. Эти URI ресурсов являются конечными точками для API .
В нашем приложении устройство является ресурсом верхнего уровня. А конфигурация — это подресурс под устройство. Давайте запишем URI.
/устройства
/устройства/{идентификатор}
/конфигурации
/конфигурации/{id}
/устройства/{id}/конфигурации
/devices/{id}/configurations/{configId}
Обратите внимание, что эти URI не используют никаких глаголов или операций . Крайне важно не включать никакие глаголы в URI. Все URI должны быть только существительными .
3. Определение представлений ресурсов
Теперь, когда определены URI ресурсов, давайте поработаем над их представлениями. Большинство представлений определяются в формате XML или JSON. Мы увидим примеры XML, так как они лучше отражают то, как составляются данные.
3.1. Ресурс коллекции устройств
При возврате ресурса коллекции включите только самую важную информацию об этом ресурсе. Это сохранит небольшой размер полезной нагрузки ответа и, таким образом, повысит производительность API .
<размер устройств = "2">
<устройство>
apple-es
<Версия ОС>10.3R2.11Версия ОС>
<платформа>SRX100Bплатформа>
<серийный номер>32423457серийный номер>
up
192.168.21.9
яблоко-srx_200
<статус>активенстатус>
устройство>
<устройство>
apple-es
<Версия ОС>10.3R2.11Версия ОС>
<платформа>SRX100Bплатформа>
<серийный номер>6453534серийный номер>
up
192. 168.20.23
яблоко-srx_200
<статус>активенстатус>
устройство>
устройства>
3.2. Ресурс одного устройства
В отличие от URI коллекции, URI единого ресурса включает полную информацию о конкретном устройстве. Он также включает список ссылок на подресурсы и другие поддерживаемые операции. Это сделает ваш REST API HATEOAS управляемым.
<устройство>
12345
apple-es
<Версия ОС>10.0R2.10Версия ОС>
<платформа>SRX100-LMплатформа>
<серийный номер>32423457серийный номер>
apple-srx_100_lehar
apple-srx_100_lehar
192.168.21.9
<статус>активенстатус>
<размер конфигурации = "2">
<конфигурация>
конфигурация>
<конфигурация>
конфигурация>
конфигурации>
<метод href="/devices/12345/exec-rpc" rel="rpc"/>
устройство>
3.
3. Ресурс коллекции конфигурацийПодобно представлению коллекции устройств, создайте представление коллекции конфигураций с минимальной информацией.
<размер конфигурации = "20">
<конфигурация>
конфигурация>
<конфигурация>
конфигурация>
…
…
конфигурации>
Обратите внимание, что представление коллекции конфигураций
внутри устройства
Единственное отличие состоит в том, что конфигураций для устройства всего две, поэтому только два элемента конфигурации указаны как подресурсы под устройством.
3.4. Единый ресурс конфигурации
Теперь представление единого ресурса конфигурации должно содержать всю возможную информацию об этом ресурсе, включая соответствующие ссылки.
<конфигурация>
<статус>активенстатус>
конфигурация>
3.
5. Ресурс коллекции конфигурации для одного устройстваЭтот поднабор конфигураций будет подмножеством основного набора конфигураций и будет характерен только для устройства.
Поскольку это подмножество первичной коллекции, НЕ создавайте поля данных представления, отличные от основной коллекции. Используйте те же поля презентации, что и в основной коллекции.
<размер конфигурации = "2">
<конфигурация>
конфигурация>
<конфигурация>
конфигурация>
конфигурации>
Обратите внимание, что эта коллекция вложенных ресурсов имеет две ссылки. Один для его прямого представления внутри подколлекции, т. е. /devices/12345/configurations/333443
, а другой указывает на его местоположение в основной коллекции , т. е. /configurations/333443
.
Наличие двух ссылок имеет важное значение, так как вы можете предоставить доступ к конфигурации конкретного устройства более уникальным образом, и вы сможете маскировать некоторые поля (если этого требует дизайн), которые не должны быть видны в вторичный сбор .
3.6. Единый ресурс конфигурации на одном устройстве
Это представление должно иметь точно такое же представление, что и представление конфигурации из основной коллекции, ИЛИ вы можете замаскировать несколько полей.
Это представление подресурса также будет иметь дополнительную ссылку на его основное представление.
<конфигурация>
<статус>активенстатус>
конфигурация>
Теперь, прежде чем перейти к следующему разделу, давайте запишем несколько наблюдений, чтобы вы их не пропустили.
- Все URI ресурсов являются существительными.
- URI обычно бывают двух видов — набор ресурсов и отдельный ресурс.
- Сбор может быть двух видов: первичный сбор и вторичный сбор. Вторичная коллекция — это вложенная коллекция только из первичной коллекции.
- Каждый ресурс/коллекция содержит хотя бы одну ссылку, т.е. на себя.
- Коллекции содержат только самую важную информацию о ресурсах.
- Чтобы получить полную информацию о ресурсе, вам нужно только получить доступ к его конкретному URI ресурса.
- Представления могут иметь дополнительные ссылки (т.е. методы в одном устройстве). Здесь метод представляет метод POST. Вы также можете иметь больше атрибутов или формировать ссылки совершенно по-новому.
- Мы еще не говорили об операциях на этих ресурсах.
4. Назначение методов HTTP
Таким образом, URI наших ресурсов и их представление теперь фиксированы. Давайте определим все возможные операции приложений и сопоставим эти операции с URI ресурсов.
Например, пользователь нашего сетевого приложения может просматривать, создавать, обновлять или удалять устройства из сети, а также создавать/развертывать/удалять конфигурации устройств. Итак, давайте назначим эти операции соответствующим ресурсам.
4.1. Просмотреть все устройства или конфигурации [Основная коллекция]
HTTP GET /devices
HTTP GET/конфигурации
Если размер коллекции большой, можно также применить разбиение по страницам и фильтрацию. например, приведенные ниже запросы будут извлекать первые 20 записей из коллекции.
HTTP GET /devices?startIndex=0&size=20 HTTP GET /configurations?startIndex=0&size=20
4.2. Просмотр всех конфигураций устройства [Дополнительная коллекция]
HTTP GET /devices/{id}/configurations
В основном это будет небольшая коллекция, поэтому здесь нет необходимости включать фильтрацию или сортировку.
4.3. Просмотр отдельного устройства или конфигурации
Чтобы получить полную информацию об устройстве или конфигурации, используйте операцию GET
для отдельных URI ресурсов.
HTTP GET /устройства/{id} HTTP GET /configurations/{id}
4.4. Просмотр одной конфигурации под устройством
HTTP GET /devices/{id}/configurations/{configId}
Представление подресурса будет таким же, как и подмножество основного представления.
4.5. Создание устройства или конфигурации
CREATE не является идемпотентной операцией, а в протоколе HTTP — POST
также не является идемпотентной. Так что используйте POST.
HTTP POST /устройства
HTTP POST /configurations
Обратите внимание, что полезная нагрузка запроса не будет содержать никаких атрибутов id
, так как сервер несет ответственность за его решение. Ответ на запрос CREATE будет выглядеть так:
HTTP/1.1 201 Created
Тип содержимого: приложение/xml
Расположение: http://example.com/network-app/configurations/678678.
<конфигурация>
<статус>активенстатус>
конфигурация>
4.
6. Обновление устройства или конфигурацииОперация обновления является идемпотентной операцией, и HTTP PUT также является идемпотентным методом. Таким образом, мы можем использовать метод PUT для операций обновления.
HTTP PUT /devices/{id} HTTP PUT /configurations/{id}
Ответ PUT может выглядеть следующим образом.
HTTP/1.1 200 ОК
Тип содержимого: приложение/xml
<конфигурация>
<статус>активенстатус>
конфигурация>
4.7. Удаление устройства или конфигурации
Удаление всегда является операцией DELETE
.
HTTP УДАЛИТЬ /devices/{id} HTTP DELETE /configurations/{id}
Успешный ответ ДОЛЖЕН быть 202 (Принято)
, если ресурс поставлен в очередь на удаление (асинхронная операция), или 200 (ОК) / 204 (Нет содержимого), если ресурс был удалены безвозвратно (операция синхронизации).
В случае асинхронной операции приложение должно возвращать идентификатор задачи, по которому можно отслеживать состояние успеха/неудачи.
Обратите внимание, что вы должны провести достаточный анализ при принятии решения о поведении, когда подресурс удаляется из системы. Обычно вы можете захотеть SOFT DELETE ресурс в этих запросах — другими словами, установить их статус НЕАКТИВНО.
Следуя этому подходу, вам не нужно будет искать и удалять его ссылки из других мест.
4.8. Применение или удаление конфигурации на/с устройства
В реальном приложении вам потребуется применить конфигурацию на устройстве – ИЛИ вы можете удалить конфигурацию с устройства (не из основной коллекции). В этом случае вы должны использовать методы PUT и DELETE из-за их идемпотент природа.
//Применить конфигурацию на устройстве HTTP PUT /devices/{id}/configurations //Удалить конфигурацию на устройстве HTTP DELETE /devices/{id}/configurations/{configId}