Как стать автором
Обновить

В оборудовании Cisco обнаружена критическая уязвимость на 10 из 10 баллов по шкале CVSS

Время на прочтение2 мин
Количество просмотров15K


В роутерах Cisco серий 4000, ASR 1000 и 1000V обнаружена критическая уязвимость
(CVE-2019-12643), которую оценили на 10 из 10 возможных баллов по шкале угроз CVSS (обычно угрозы уровня Critical получают 7,5-9,1 баллов, редко — 9,8). Соответствующая информация размещена на официальном сайте производителя оборудования.

Уязвимость в контейнере виртуальных сервисов API Cisco REST для ПО Cisco IOS XE позволяет удаленному злоумышленнику обойти аутентификацию на управляемом устройстве без прохождения проверки подлинности.

Инженеры Cisco рекомендуют срочно установить патч на все роутеры под управлением IOS XE, например, с помощью специального инструмента Cisco IOS Software Checker.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии7

Как мы OpenAPI в приложениях используем (Spring Boot, Typescript)

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров89

Хочу рассказать, как мы реализуем на практике контакты по спецификации OpenAPI, стараемся следовать подходу Contract First и в целом разрабатывать так, чтобы удобно было как разработчикам в команде, так и всем, кто использует наши сервисы. В статье описана генерация Java и typescript, а так же конфигурации maven.

Контракты OpenAPI - спецификация, которая позволяет описывать интерфейс взаимодействия с сервисом в виде REST. Или не REST, тут зависит от задачи и ее реализации.

Вдаваться в историю появления спецификации и ее развития не буду. Если кратко - эта спецификация позволяет описывать контракт взаимодействия с сервисом с помощью yaml-синтаксиса. А с помощью OpenAPI generators можно генерировать из такого описания клиент-серверные интерфейсы на различных языках. На данный момент последняя версия OpenAPI - 3.1.0 - является наиболее удобной и структурированной, позволяет описывать контракт с помощью JSON. Мы осознанно используем версию 3.0.3. Почему? Расскажу далее.

Читать далее
Рейтинг0
Комментарии0

Расширенные возможности SOAP и когда он нужен?

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров1.3K

SOAP (Simple Object Access Protocol) — это протокол обмена сообщениями, который используется для обмена структурированными данными в распределенных вычислительных средах. Хотя SOAP часто рассматривается как более сложная и тяжеловесная альтернатива REST, у него есть ряд расширенных возможностей, которые делают его подходящим выбором для определенных корпоративных приложений. Давайте подробно рассмотрим эти возможности, включая WS-Security, а также разберемся, как WS-Security обеспечивает безопасность SOAP-сообщений.

WS-спецификации играют важную роль в расширении функциональности и безопасности SOAP и других веб-сервисов."WS" в контексте WS-Security и других подобных спецификаций расшифровывается как "Web Services".

Читать далее
Всего голосов 5: ↑4 и ↓1+3
Комментарии6

Чистая архитектура: новый интенсив в феврале 2023

Время на прочтение2 мин
Количество просмотров1.2K

11–12 февраля 2023 пройдет интенсив Чистая архитектура приложения на Go: 2 дня, 4 часа теории, 8 часов практики.

Интенсив подойдет для разработчиков на Go и других ЯП, которые хотят перейти на Golang, и архитекторов.

Читать далее
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Joomla Day France 2023

Время на прочтение3 мин
Количество просмотров506

Прямо сейчас во Франции проходит Joomla Day France - конференция о Joomla для новичков и профессионалов. Такие конференции проходят по всему миру. Недавно проходили Joomla Day в США, Германии и Нидерландах.

Конференция проходит в 2 дня - 16 и 17 июня 2023 года.

Читать далее
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Измерения в OpenStack с использованием Ceilometer

Время на прочтение10 мин
Количество просмотров8.1K
Автор: Руслан Киянчук

Цель проекта OpenStack – создать платформу облачных вычислений с открытым кодом, которая будет соответствовать запросам публичных и частных облаков засчет простого развертывания и возможностей масштабирования. Так как OpenStack предоставляет инфраструктуру как услугу (IaaS) конечным клиентам, важно иметь возможность измерить её производительность и использование в целях биллинга, оценки эффективности, масштабируемости и получения статистики.

Для измерения инфраструктуры OpenStack доступны несколько проектов:
Читать дальше →
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Язык Go для начинающих

Время на прочтение9 мин
Количество просмотров487K
Gopher

Цель этой статьи — рассказать о языке программирования Go (Golang) тем разработчикам, которые смотрят в сторону этого языка, но еще не решились взяться за его изучение. Рассказ будет вестись на примере реального приложения, которое представляет из себя RESTful API веб-сервис.
Читать дальше →
Всего голосов 73: ↑67 и ↓6+61
Комментарии71

Используем RestKit 0.22.x для просмотра героев Marvel

Время на прочтение17 мин
Количество просмотров10K
Веб-сервисы, в частности использующие REST-архитектуру, уже плотно вошли в нашу жизнь. Разрабатывая клиентское приложение под iOS, часто так или иначе приходится загружать данные с сервера и хранить/отображать их локально. При этом хочется делать это легко и непринужденно, не прибегая к изобретению собственных “велосипедов”.

Последняя версия известного Objective-C фреймворка RestKit для iOS и OSX значительно упрощает работу с RESTful API. Несомненно, одной из его самых ценных фич является возможность автоматического сохранения объектов в локальную БД, используя CoreData. Давайте вместе проделаем путь от получения данных от сервера до сохранения и отображения их на нашем iOS-устройстве. А чтобы нам не было скучно, в качестве примера будем работать с API всемирно известной компании по производству комиксов Marvel.

Статья представляет из себя некое подобие туториала. Предполагается, что читатель уже знаком с базовыми концепциями разработки на языке Objective-C, использованием iOS SDK, Core Data и такого понятия как блоки.


Читать далее: код, картинки
Всего голосов 13: ↑8 и ↓5+3
Комментарии2

Sypex Geo 2.2 — теперь с GeoNames и ОКАТО

Время на прочтение3 мин
Количество просмотров17K
Вышла новая версия Sypex Geo 2.2 — очень быстрого алгоритма определения города по IP. Теперь базы данных стали двуязычными (русский и английский), регионы и города теперь привязаны к базе данных GeoNames, и имеют постоянные ID.

Были добавлены ОКАТО коды для городов и регионов России, КОАТУУ для Украины и СОАТО для Беларуси.

Технические подробности


Алгоритм работы Sypex Geo значительно не изменился, были исправлены небольшие ошибки, которые возникали при сильной неравномерности распределения IP диапазонов.
Читать дальше →
Всего голосов 34: ↑32 и ↓2+30
Комментарии40

Навигация по коду в IDE от JetBrains с использованием REST API и командной строки

Время на прочтение4 мин
Количество просмотров14K

image


При разработке приложений часто приходится сталкиваться с необходимостью просмотра вывода exception stack trace (в логах или при debug-инге). Хотелось бы иметь возможность автоматически попадать в необходимое место кода, прямо кликом по строке в выводе stack trace в браузере или в терминале.


Если вы являетесь пользователем одного из последних продуктов компании JetBrains (в частности PhpStorm), вы можете использовать для этих целей внутреннее REST API (для навигации из браузера) и command line launcher (для навигации в терминале).


Навигация в браузере


Частичное описание методов REST API IDE от JetBrains можно посмотреть здесь:


» http://develar.org/idea-rest-api/


Одним из методов этого API является возможность открыть файл проекта и переместиться на произвольную позицию в этом файле внутри самой IDE.

Читать дальше →
Всего голосов 29: ↑29 и ↓0+29
Комментарии12

Пример создания практичной Debug панели в Yii

Время на прочтение2 мин
Количество просмотров6.1K
Написать свою Debug-панель в Yii очень просто. Поэтому рассмотрим чуть практичную (с вызовом api PHPStorm) панель просмотра вьюшек.
Читать дальше →
Всего голосов 14: ↑12 и ↓2+10
Комментарии2

Swagger в Magento 2

Время на прочтение3 мин
Количество просмотров9K

Тенденция перехода от сборки HTML-страниц на стороне сервера к их сборке на стороне клиента уже даже не тенденция, а тренд. Magento 2, шагая в ногу со временем в меру своих возможностей, также пытается быть в тренде, разнося обработку данных и их представление. Как простому разработчику заглянуть в "чистые" данные, если их представление вынесено достаточно далеко? Есть множество других хороших решений (начиная c tcpdump), и есть swagger.


image


Swagger достаточно хорошо интегрирован в Magento 2 (если только вам в голову не пришла дурацкая затея изменить код для "default" витрины). Все, что нужно для того, чтобы начать разглядывать "чистые" данные в Magento 2 с точки зрения удаленного приложения — использовать интегрированный в нее Swagger. В данном материале я не рассматриваю особенности использования самого Swagger'а, а просто привожу пример того, как использовать Swagger, интегрированный в Magneto 2, в режиме анонимного пользователя и в режиме аутентифицированного пользователя.

Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии0

Excel «Всемогущий» и Redmine: как генерировать задачи прямо в Excel

Время на прочтение9 мин
Количество просмотров22K

В далёких от IT проектных организациях Excel часто используется в качестве инструмента обработки бог весть каких данных.

Передо мной встала задача в очень сжатые сроки наладить в Excel мониторинг весьма специфичного проекта с попутной выдачей заданий в проектные отделы. Касательно мониторинга ТЗ было более-менее определено и весь функционал был реализован средствами VBA самого Excel.

С выдачей заданий всё было не так однозначно. Поскрипев креслом, я решил попробовать отправлять задачи в Redmine прямо из Excel, получая обратно гиперссылку и номер задачи.

Статья написана инженером-проектировщиком для таких же новичков в программировании, автоматизирующих подручными средствами рутинную работу. Буду рад любым замечаниям!
Читать дальше →
Всего голосов 26: ↑25 и ↓1+24
Комментарии14

Дизайн REST API для высокопроизводительных систем

Время на прочтение17 мин
Количество просмотров40K


Александр Лебедев выражает всю нетривиальность дизайна REST API. Это — расшифровка доклада Highload++ 2016.

Всем здравствуйте!
Поднимите руку те, кто фронтенд разработчик в этом зале? Кто мобильный разработчик? Кто бэкенд разработчик?
Бэкенд разработчиков большинство в этом зале сейчас, что радостно. Во-вторых, почти все проснулись. Чудесная новость.

Пару слов о себе


Кто я такой? Чем занимаюсь?

Я фронтенд team lead компании «Новые Облачные Технологии». Последние 5 лет я писал веб фронтенд, который работает с REST API и который должен для пользователя работать быстро. Я хочу поделиться опытом о том, какие API должны быть, которые позволяют этого добиться.

Несмотря на то, что я буду рассказывать со стороны фронтенда, принципы — они общие более-менее для всех. Я надеюсь и бэкенд разработчики, и разработчики мобильных приложений так же найдут для себя в этом рассказе полезные вещи.
Всего голосов 47: ↑43 и ↓4+39
Комментарии13

Создание библиотеки для авторизации с помощью AzureAD для Android

Время на прочтение12 мин
Количество просмотров2.5K
Итак, цель данной статьи — показать, как работать с OAuth 2.0 на примере авторизации через Azure AD API. В итоге у нас получится полноценный модуль, выносящий максимально возможное количество кода из проекта, к которому он будет подключен.

В данной статье будут использованы библиотеки Retrofit, rxJava, retrolambda. Их использование обусловлено лишь моим желанием минимизировать бойлерплейт, и ничем больше. А потому сложностей по переводу на полностью ванильную сборку быть не должно.

Первое, что нам нужно будет сделать — осознать, что представляет собой протокол авторизации OAuth 2.0 (в данном случае будет использоваться исключительно code flow) и как это будет выглядеть применительно к нашей цели:

1. Если есть кэшированный токен, перепрыгиваем на пункт 4.

2. Инициализируем 'WebView', в котором откроем страницу авторизации нашего приложения.

3. После ввода данных пользователем и клика по Sign in, будет автоматический редирект на другую страницу, в query parameters которой имеется параметр code. Он то нам и нужен!

4. Обмениваем code на токен через POST запрос.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

Думы о web-API. часть вторая

Время на прочтение5 мин
Количество просмотров6K
Приближение второе: Правильный путь

Если вдруг вы пропустили первое приближение, его можно найти здесь. А в этом приближении я хотел бы отдельно поговорить о подходах к построению уникальных путей к ресурсам и методам вашего web API и о тех архитектурных особенностях приложения, которые влияют на внешний вид этого пути и его компоненты.
Читать дальше →
Всего голосов 15: ↑12 и ↓3+9
Комментарии5

Забираем аудиопоток с Twilio по SIP и отправляем на RTMP CDN для дальнейшей раздачи

Время на прочтение8 мин
Количество просмотров7K
image

Как известно, в природе существуют CDN-сети, которые используются для доставки потокового видео конечным пользователям. Взять к примеру онлайн-трансляцию футбольного матча. Исторически сложилось, что протокол RTMP, разработанный Adobe, в определенное время стал очень популярен для доставки Live-видеоконтента, и поддержка этого протокола есть в каждом уважающем себя Encoder–устройстве или программе, которая захватывает видеопоток с камеры и отправляет на сервер или CDN для последующей раздачи. В статье описывается как сделать SIP источником потока для CDN.
Читать дальше →
Всего голосов 6: ↑6 и ↓0+6
Комментарии0

REST API на Ruby на основе ActiveRecord для доступа к таблицам в базе данных

Время на прочтение6 мин
Количество просмотров16K
На Ruby и многих других языках есть удобные ORM-решения для программного доступа к СУБД. Также есть фреймворки вроде RubyOnRails для простого и удобного создания web-приложений, работающих с базой данных. Простые соглашения позволяют писать мало кода и при этом создавать мощные интерфейсы.

Однако представим следующую ситуацию: у нас есть большая развивающаяся корпоративная система, в которой очень много сущностей. Очень часто большое количество сущностей, которые содержат сложную бизнес-логику, имеет зависимости от множества мелких. Например, словарей.

Стандартные действия для получения возможности работы с сущностью в Rails — создать модель, создать контроллер, создать представление (а если у нас полный набор REST-действий, то два — на получение списка и на получение одной записи в случае работы через API). Действия простые, и файлы очень простые. И когда словарей много, то файлов получим также большое количество. Большое количество простых и однотипных файлов. И где-то среди них будут затеряны большие, нетипичные файлы. Кроме большого количества файлов, мы получаем проблемы с необходимостью прописывать маршруты. Даже тем, кто такие системы поддерживает не один год, ориентироваться в проекте будет тяжело, не то что новому разработчику.

Здесь на помощь приходит магия Rails.

Для простоты предположим, что мы строим JSON API. Хотя ничто не помешает нам добавить поддержку XML.

Итак, один файл и один класс, которые могут заменить очень большое количество мелких однотипных файлов и классов.
Читать дальше →
Всего голосов 12: ↑10 и ↓2+8
Комментарии15

PyNSK #5 — пятая встреча Новосибирского Python сообщества

Время на прочтение1 мин
Количество просмотров3.1K
image


Питонисты Новосибирска, приглашаем вас на встречу сообщества Python сообщества — PyNSK.

12-го декабря (суббота) состоится пятая встреча. Она пройдет в новом для нас месте — Культурный Центр «Этаж» и начнется 13-00.
На встрече вас ждет море общения и 2 доклада:
Узнать о докладах
Всего голосов 7: ↑7 и ↓0+7
Комментарии0

Перевод: Чему я научился, разрабатывая API для облачной платформы Microsoft

Время на прочтение6 мин
Количество просмотров8.9K
Вашему вниманию предлагается перевод поста о том, как разрабатывался Windows Azure API: о трудностях, удачных и неудачных решениях, сделанных выводах. Далее — текст автора.

После разговора с моим коллегой по работе о REST API мне пришла в голову идея рассказать о своем опыте организации и работы команды, которая создала Windows Azure Service Management API. На написание этого поста меня вдохновили такие великолепные статьи в жанре “чему я научился” как эта за авторством Foursquare и эта от Даниэля Джакобса из Netflix.

Предупреждение: Все рассказанное под катом — мое личное мнение. Я даже не уверен, что остальные участники команды со мной согласны. И я точно знаю, что некоторые из высказанных мыслей довольно противоречивы.
ознакомиться с личным мнением автора
Всего голосов 23: ↑19 и ↓4+15
Комментарии9
1
23 ...