Обновить
26.56

Проектирование API *

О создании API

Сначала показывать
Порог рейтинга
Уровень сложности

Лента новостей: почему мы делаем это неправильно?

Время на прочтение6 мин
Охват и читатели15K

Здравствуй, меня зовут Дмитрий Карловский и у меня для вас новость. Ну как новость, свежий взгляд на привычную вещь в виде очередной статьи. Скорее всего вы попадёте на неё из какой-либо ленты новостей. Или не попадёте, если новость будет опубликована не вовремя. Независимо от того, насколько данная статья была бы вам интересна.


Типичная лента новостей


Всё дело в том, как формируются ленты и как пользователь с ними взаимодействует. И тут, к сожалению, как обычно, самое простое решение — предельно неправильное. Давайте разберёмся почему.

Читать дальше →

В Office 365 Outlook нашли недокументированные API c подробными логами активности пользователя

Время на прочтение5 мин
Охват и читатели19K


Детальные логи Office 365 Outlook, извлечённые программой Magic-Unicorn-Tool: злоумышленник ищет счёт на оплату (payment invoice). Первая буква поискового запроса введена в 10:42:44.548, последняя в 10:43:07.214. Информация об активности хранится в логах шесть месяцев

Долгое время ходили слухи, что в Office 365 есть встроенный секретный инструмент для записи активности пользователей. В июне 2018 года эти слухи подтвердились в полной мере. Всё началось с видеоролика, опубликованного Anonymous, а потом уже специалисты CrowdSrtike выложили подробный отчёт.

Microsoft внедрила в почтовый клиент Activities API не для каких-то злонамеренных целей, а для задач цифровой криминалистики, то есть расследования инцидентов со взломом корпоративной почты и другими утечками данных. Для этого ведётся подробнейший лог активности за шесть месяцев даже если пользователь отключил журналирование.
Читать дальше →

Единые инструменты в IT: хорошо или плохо?

Время на прочтение6 мин
Охват и читатели5.6K
А вы бы хотели всегда работать в одной среде? Так, чтобы не приходилось скакать туда-сюда по средам разработки и при использовании инструментов. До идеала, конечно, еще далеко, но IT-мир стремится к этому. Сегодня рассказываем о единой кросс-платформенной библиотеке API. Присоединяйтесь!

Читать дальше →

Скриншаринг в Chrome – готовимся к getDisplayMedia

Время на прочтение4 мин
Охват и читатели8.4K

Chrome Web Store принял решение запретить inline-установку расширений для Chrome. Это напрямую касается WebRTC-приложений, так как сейчас для скриншаринга в Chrome нужно расширение. Придет ли getDisplayMedia API на помощь?

Управление правами доступа в Expressjs при помощи CASL

Время на прочтение5 мин
Охват и читатели8.8K



В современных приложениях, которые поддерживают аутентификацию, мы часто хотим изменить то, что видимо для пользователя, в зависимости от его роли. Например, гостевой пользователь может видеть статью, но только зарегистрированный пользователь или администратор видит кнопку для удаления этой статьи.


Управление этой видимостью может стать полным кошмаром с увеличением количества ролей. Вероятно, вы уже писали или видели код вроде этого:

Читать дальше →

Работа с API КОМПАС-3D → Урок 10 → Спецсимволы, включающие строку

Время на прочтение9 мин
Охват и читатели7.5K
Мы уже знакомились со спецсимволами в 4 уроке нашего цикла. Там было показано их простейшее использование. Там же говорилось, что если интерфейс ksTextItemParam задает и спецсимвол, и строку, то строка располагается сразу за спецсимволом. Однако существуют спецсимволы, которые нарушают это правило. О них мы сегодня и поговорим.



Читать дальше →

А где вы храните данные?

Время на прочтение15 мин
Охват и читатели5.3K
Привет, Хабр! Мы продолжаем нашу экспериментальную серию статей, наблюдая за которой вы можете в реальном времени влиять на ход создания игры на UWP. Сегодня мы поговорим о постоянно возникающем в рядах разработчиков вопросе — «Где хранить данные?». Присоединяйтесь и делитесь своими мыслями в комментариях!

Читать дальше →

Популярные антипаттерны: паджинация

Время на прочтение4 мин
Охват и читатели19K

Здравствуйте, меня зовут Дмитрий Карловский и я… не люблю читать книги, потому что пока перелистываешь страницу, ты вырываешься из увлекательного повествования. И стоит чуть замешкаться, как ты забываешь на чём оборвалось последнее предложение предыдущей страницы, и приходится листать обратно, чтобы перечитать его. И если с физическими книгами это не так страшно, то вот с выдачей rest-сервера всё куда печальней — ведь сейчас на странице одни данные, а через секунду — уже совершенно другие. Давайте подумаем как же так получилось, кто виноват и главное — что делать.


Разные паджинаторы

Читать дальше →

Я могу стать Apple, и ты тоже

Время на прочтение7 мин
Охват и читатели11K

Публичное раскрытие уязвимости в сторонней проверке подписи кода Apple


В отличие от некоторых предыдущих работ, данная уязвимость не требует прав администратора, не требует JIT-кода или повреждения памяти для обхода проверки подписи кода. Всё что нужно — правильно отформатированный файл Fat/Universal, и проверка подписи кода покажет валидный результат.

Резюме


  • Найденный обход применяемого сторонними разработчиками API для подписи кода позволяет представить любой код как подписанный Apple.
  • Все известные вендоры и проекты с открытым исходным кодом уведомлены (см. список ниже). Для них доступны патчи.
  • Есть вероятность, что проблема затрагивает другие сторонние программы, где используются официальные API подписи кода от Apple.
  • Разработчики несут ответственность за правильное использование API подписи кода. Есть инструменты демо-взлома (PoC) для тестов.
  • Относится только к macOS и более старым версиям OSX.
Читать дальше →

Magento 2 REST API на примере простого модуля

Время на прочтение17 мин
Охват и читатели20K
Приветствую вас, уважаемые хабравчане! Поскольку я занимаюсь разработкой на e-commerce платформе Magento с 2013 года, то набравшись храбрости и посчитав, что в этой области я могу себя назвать, как минимум, уверенным разработчиком, решил написать свою первую статью на хабре именно об этой системе. И начну я с реализации REST API в Magento 2. Здесь из коробки есть функционал для обработки запросов и я постараюсь продемонстрировать его на примере простого модуля. Данная статья больше рассчитана на тех, кто уже работал с Маджентой. И так, кто заинтересовался, прошу под кат.
Читать дальше →

Начало работы с микросервисами в Spring Boot

Время на прочтение13 мин
Охват и читатели29K
Всем привет!

В этой статье мы продемонстрируем основные компоненты для создания RESTful микросервисов, используя реестр служб Consul, Spring Boot для всего скаффолдинга, инжекции зависимостей, Maven для сборки, а также Spring REST и Jersey/JaxRS API Java RESTful.

Основные преимущества микросервисов:

  • Микросервисы позволяют ослабить зацепленность вашего кода

  • Микросервисы позволяют различным командам работать над небольшими составляющими, используя независимые технологии, обеспечивая более безопасное и частое развертывание Spring Boot поддерживает различные реализации для создания REST API

  • Обнаружение и вызов сервисов не зависят от сервисной платформы

  • Swagger создает надежную документацию API и интерфейс вызова

Если вы еще не используете микросервисы, вы благополучно не успели в фазу ранних последователей на кривой восприятия технологии, и, вероятно, как раз самое время начинать.

Адаптивные лимиты параллельных подключений в Netflix

Время на прочтение5 мин
Охват и читатели5K


Компания Netflix одержима вопросом доступности сервисов. Мы уже не раз рассматривали его в нашем блоге и рассказывали, как нам удаётся достичь своих целей. Мы используем circuit breakers, лимиты параллельных подключений, тестирование с помощью намеренного внедрения ошибок (chaos testing) и многое другое. Сегодня мы представляем вам ещё один инновационный подход, который существенно повышает стабильность приложения при экстремальных нагрузках и позволяет избежать каскадных сбоев в работе сервисов — адаптивные лимиты параллельных подключений. Больше не нужно тратить силы, чтобы определить лимиты параллельных подключений, позволяющие системе поддерживать небольшое время отклика. В рамках этого анонса мы также выкладываем в открытый доступ простую Java-библиотеку с возможностями интеграции для сервлетов, управляющих программ и gRPC.
Читать дальше →

DocumentFragment: что это такое и как с ним (не) бороться

Время на прочтение4 мин
Охват и читатели37K
Дисклеймер
Похоже, у меня начинается новая серия статей — немного скучная и сугубо утилитарная. В них будут содержаться разъяснения моментов, которые часто вызывают трудности у моих студентов. Если вы матёрый веб-девелопер, скорее всего, вам будет неинтересно. Если вы ждёте извращений в силе «Пятничного JS», их тут не будет, увы.


Одна из вещей, с пониманием которых у студентов регулярно возникают проблемы — это DocumentFragment. В общем-то, я не могу их за это винить. При внешней простоте он имеет несколько неочевидных и даже контринтуитивных свойств. В данной статье я хочу собрать всё, что необходимо про него знать новичку.

image
Я преисполнен любопытства и желаю читать дальше

Ближайшие события

Как нас анализируют в кинотеатрах… и не только

Время на прочтение11 мин
Охват и читатели56K
Компьютерное зрение все глубже интегрируется в нашу жизнь. При этом, мы даже не замечаем всего этого наблюдения за нами. Сегодня расскажем о системе, помогающей анализировать эмоции посетителей на конференциях, в учебном процессе, в кинотеатрах и много где ещё. Кстати, покажем код и расскажем о практических кейсах. Заглядывайте под кат!

Читать дальше →

Facebook отрицает, что передавал производителям устройств те же данные, что разработчику Александру Когану

Время на прочтение3 мин
Охват и читатели10K
Совсем недавно маленький ростом Марк Цукерберг давал показания Конгрессу США, сидя на портфеле. Он заверил конгрессменов, что у пользователей крупнейшей социальной сети «полный контроль» над тем, кому передаются персональные данные. Но сейчас выясняется, что дело обстоит не совсем так. И вполне можно прийти к выводу, что Цукерберг лгал Конгрессу.


Такие выводы следуют из результатов расследования, опубликованных вчера в NY Times. В статье описывается работа специальных API, которые примерно десять лет назад были интегрированы в устройства по крайней мере 60 производителей. С этими компаниями Facebook заключил долгосрочные соглашения, многие из которых действуют до сих пор.

Неполнотекстовый поиск: специфичные возможности Elasticsearch для сложных задач

Время на прочтение10 мин
Охват и читатели20K
image

Привет всем, меня зовут Андрей, и я разработчик. Давным-давно — кажется, в прошлую пятницу — у нашей команды был проект, где понадобился поиск по ингредиентам, входящим в состав продуктов. Допустим, в состав колбасы. В самом начале проекта от поиска требовалось не много: показать все рецепты, в которых нужный ингредиент содержится в определенном количестве; повторить для N ингредиентов.
Читать дальше →

Как мы интегрировали платежную систему в российский проект

Время на прочтение7 мин
Охват и читатели16K
image

Пять месяцев назад мы опубликовали NPM модуль для работы с новой версией Яндекс.Касса, которая вышла в октябре 2017 года. Наш модуль попал в официальную документацию, и его уже скачали более 1300 раз.

image

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

Поэтому сегодня мы хотим рассказать, как для одного из отечественных клиентов мы переходили от интеграции привычных нам заграничных платежных систем на русские аналоги, с какими трудностями столкнулись и как их решали.
Читать дальше →

Создаем калькулятор с единицами измерений

Время на прочтение21 мин
Охват и читатели15K
Как-то раз мне нужно было реализовать калькулятор для складывания и конвертации физических величин. У меня тогда не было ограничений по времени, поэтому я решил проблему на высоком уровне абстракции и, соответственно, под широкий спектр задач. Предлагаю на ваш суд мое решение.

image

Представьте, что вам нужно написать калькулятор, который умеет не просто считать цифры, а оперировать физическими (измеряемыми) величинами – складывать длину, конвертировать количество чего-то из одной единицы измерения в другую, и т.п. Первым делом, давайте обозначим чуть конкретнее задачу. У нас будут вот такие фичи:
Читать дальше →

Chrome тестирует Picture-in-Picture API для всплывающих видео вне браузера

Время на прочтение2 мин
Охват и читатели10K

Производители браузеров работают над W3C API, которое утвердит Picture-in-Picture (PiP) режим и позволит сайтам показывать всплывающие видео вне окна браузера.

В прошлом, PiP поддерживался только внутри канваса как всплывающее окно, которое появляется только в активной вкладке, пока пользователь скроллит страницу вверх-вниз.

Некоторые платформы добавили поддержку PiP-режима, но это были API, заточенные под OS, то есть работающие с любыми видеоприложениями, но не только с браузерами.
Читать дальше →

Универсальный API для получения информации по чекам

Время на прочтение9 мин
Охват и читатели131K
Привет жителям Хабра.

В данной статье хотелось бы рассказать про API для получения чеков, которое нам не предоставила всеми любимая ФНС.

Когда только появились QR-коды на чеках я подумал «Вау, как круто! Ты сканируешь код и видишь если не всю инфу по чеку, то ссылку на него». И какого же было мое разочарование, когда просканировав такой код я увидел что-то вроде

t=20180518T220500&s=975.88&fn=8710000101125654&i=99456&fp=1250448795&n=1

Но расстраиваться я не стал и подумал, что ФНС позаботилась о нас и предоставила API для получения такой информации. Погуглив некоторое время я понял, что ФНС нам предоставила только мобильное приложение для проверки чека и просмотра той информации, что поступила к ним от магазина.
Читать дальше →

Вклад авторов