Обновить
28.47

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

О создании API

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

Верификация пользователей в Китае и социальный кредит

Время на прочтение6 мин
Охват и читатели61K
Согласно законодательству КНР, регистрация на любом интернет-портале или сервисе требует идентифицировать пользователя как реальное лицо. О том, как это сделать, что для этого требуется и какие последствия несет мы и поговорим в этой статье.
Читать дальше →

Как научить Алису управлять вашим умным домом. Доклад Яндекса

Время на прочтение10 мин
Охват и читатели29K
В конце сентября прошла наша первая встреча для hardware-разработчиков — Яндекс.Железо. Это важный шаг на новом для нас рынке производителей устройств. Участники (около 150 человек) послушали доклады, пообщались и провели много времени на стендах, где можно было заглянуть внутрь беспилотного автомобиля, обезвредить «бомбу», перерезав нужные провода, разобрать Яндекс.Станцию (рекорд — 6 минут 23 секунды), а также протестировать бортовой компьютер Яндекс.Авто и умный дом.





Как раз о платформе умного дома и поговорим сегодня. Весной мы запустили её для всех разработчиков, а на Яндекс.Железе руководитель разработки платформы Марат Мавлютов подвёл первые итоги и показал, как наладить управление устройствами. Из доклада можно узнать о терминах голосового API, способах описания и взаимодействия с девайсом пользователя.
Читать дальше →

Интервью с веб-разработчиком Pornhub

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


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

Недавно мне посчастливилось взять интервью у веб-разработчика крупнейшего в мире сайта для взрослых — Pornhub.

Цель: узнать о технологиях и новинках в области работы с веб-API и, конечно же, как все это реализовано в рамках Pornhub. Наслаждайтесь!

Примечание: порноиндустрия — крайне конкурентная среда, поэтому на несколько вопросов я не смог получить ответ. Я уважаю необходимость разработчиков оберегать свои профессиональные секреты.
Читать дальше →

Создание бэкенд приложения для онлайн чата Apollo, Node.js

Время на прочтение3 мин
Охват и читатели8.6K
Некоторое время назад я работал над мобильным приложением, функционал которого включал в себя удобный онлайн-чат. И теперь я решил написать статью с краткой инструкцией, как создать чат, используя apollo server и node.js на бэкенде, а так же react native и apollo client на клиентской части.

Статья разбита на две части для удобства прочтения. В первой части содержится гайд по созданию бэкенд приложения, а во второй — гайд по созданию фронтенд приложения.

Если вам лень читать, можно сразу посмотреть код в Github’e здесь и здесь.

В качестве основных технологий для реализации я выбрал node.js фреймворк koa, базу данных postgresql, а так же GraphQL сервер — apollo-server-koa.

Первым делом, был сгенерирован пустой koa2 проект, для этого я использовал простой koa-generator, выполнив в терминале команду: 

$ koa <project name>
Читать дальше →

GridmiAPI — простая и гибкая библиотека Android для работы с REST&RPC

Время на прочтение3 мин
Охват и читатели1.6K
Здравствуйте, хабровчане!

Когда занимаешься разработкой сетевых приложений под платформу Android, понимаешь, что одно и другое приложение похоже друг на друга. С этой мыслью у большинства разработчиков инициализируется и другая мысль — «Почему бы мне не использовать какие-либо готовые решения, ведь явно моя задача не нова?». С этого момента начинается поиск подходящих библиотек для решения актуального на сей момент вопроса. По истечению некоторого времени — профит. Казалось бы всё хорошо, ведь библиотека найдена и осталась только написать реализацию решения текущего вопроса. И тут начинаются проблемы. Связаны они с управлением потоков, да и вообще Java никогда не славилась своей компактностью, все «волшебство» должно быть реализовано непосредственно разработчиком. Порой я нахожу в этом только положительные стороны, ведь логика каждого проекта отличается друг от друга кардинально. Вам постоянно приходится переключатся с потока на поток, что не очень удобно и как описывалось ранее — получается громоздко. Решение данной проблемы было реализовано и ранее, но не столь компактно, как хотелось бы. На помощь приходит библиотека для работы с HTTP — GridmiAPI. Это максимально компактное решение, которое в свою очередь позволяет оперировать данными в реальном времени.
Читать дальше →

Как мы переводили легаси проект на GraphQL

Время на прочтение5 мин
Охват и читатели4.2K
Привет, Хабр. Меня зовут Антон Потапов, я iOS разработчик в компании FINCH. Сегодня я хочу подробно рассказать про то как перевести мобильный проект на GraphQL, описать плюсы и минусы этого подхода. Приступим.

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

OWASP API Security Top 10 RC

Время на прочтение4 мин
Охват и читатели17K
image
Этот проект предназначен для постоянно растущего числа организаций, которые внедряют потенциально чувствительные API в рамках своих программных решений. API используются для внутренних задач и для взаимодействия со сторонними сервисами. К сожалению, многие API не проходят тщательного тестирования безопасности, которое сделало бы их защищенными от атак, увеличивая ландшафт угроз для веб-приложения.

Проект безопасности OWASP API Security Top 10 предназначен подчеркнуть потенциальные риски в небезопасных API и предложить меры снижения таких рисков.
Читать дальше →

Как в сжатые сроки освоить HERE API

Время на прочтение3 мин
Охват и читатели6.9K
image alt
-Ты где?
-I’m here

В конце сентября состоялся самый большой в мире хакатон, который проходил в Казани. Данное мероприятие по количеству участников вошло в «Книгу рекордов Гиннесса».


На эти 48 часов перед нами была поставлена задача:

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

Почему самоуничтожающиеся фотографии/видео в Telegram не безопасны

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

Совсем недавно я увидел статью, где говорилось о внедрении самоуничтожающихся сообщений в мессенджере WhatsApp. Она будет иметь схожую с Telegram функциональность, но если в мессенджере Дурова удаление распространяется как на обычные сообщения (секретные чаты), также их можно использовать на фотках в обычных чатах. То есть после отправки предположим фотографии, собеседник сможет просмотреть ее ограниченное количество времени, а после, по идее, она будет удалена у обоих собеседников (желательно с сервера тоже), то в WhatsApp планируется внедрение удаления обычных сообщений(и сделано пока оно так себе).

Но, сегодня речь пойдет не о WhatsApp (ибо я им вообще не пользуюсь), а о Telegram. Сама идея самоуничтожающихся сообщений вряд ли пользуется большим спросом, но и есть те пользователи, которые пользуются ими, например, при отправке документов или же фотографий, которые можно увидеть лишь раз (кхм).

Для тех, кто ленится читать – самоуничтожающиеся сообщения в Telegram не безопасны и не конфиденциальны. Не думайте, что если вы таким способом отправите какому-нибудь собеседнику важный документ, он его не сможет сохранить (и я сейчас не про способ быстрого скриншота или же фотографий экранов телефона, боже упаси) – для этого используйте секретные чаты. А для тех кому интересна сама реализация этих сообщений, можете продолжить чтение.
Читать дальше →

Обработка исключений ASP.NET при помощи IRO.Mvc.MvcExceptionHandler

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


Если вы являетесь c# бекенд разработчиком — наверняка у вас рано или поздно появилась необходимость найти унифицированный способ обработки исключительных ситуаций. Хотя, даже если вы довольствуетесь кодом 500 в ответе, эта статья все равно поможет улучшить ваш способ, при этом не заставляя что-либо переписывать.

Речь пойдет об ASP.NET библиотеке, которая позволяет решить эту проблему максимально изящно. Для тех кому лень читать длинную статью — ридми и сама библиотека тут, пример тут. Доступна на nuget.org и я буду только рад если она принесет кому-то пользу. И так, перейдем к коду. Для начала давайте разберем альтернативы.
Читать дальше →

DevOpsProdigy KubeGraf v1.1.0

Время на прочтение1 мин
Охват и читатели3.2K
Сегодня мы зарелизили новую версию нашего плагина для мониторинга k8s — grafana.com/grafana/plugins/devopsprodigy-kubegraf-app — о котором писали ранее.

Ключевая фича новой версии — возможность аутентификации с помощью bearer-токена. Теперь посредством манифестов (которые можно найти тут) вы можете создать пользователя с readonly-доступами, получить токен (в ридми описан весь процесс) и использовать его в окне конфигурации вашего кластера.


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

Первый бот на PHP для ВКонтакте

Время на прочтение4 мин
Охват и читатели24K
Здравствуйте, хабровчане. В этой публикации я напишу о том, как сделать своего первого чат-бота для ВКонтакте. Думаю, что опытным программистам это будет не интересно, а вот тем, кто только начинает свой путь, будет интересно, так как я ещё и сам не очень далеко ушёл и понимаю проблемы начинающих. И предупреждаю сразу, что большинство скриншотов будет на английском языке.
Читать дальше →

Как наладить поиск адреса по координатам (и где взять нужный справочник)

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


Весной мы добавили в API DaData.ru фичу «Обратное геокодирование», она же «Адрес по координатам». Название намекает: метод принимает геокоординаты и отдает данные об адресе.

Солидный продукт с той же функциональностью предлагает «Яндекс» — он называется «Геокодер». Но сервис «Яндекса» бесплатен только для открытых некоммерческих проектов. Стандартный же тариф — от 120 000 ₽ в год — подходит не всем.

Мы подумали — если сделать бесплатную или недорогую альтернативу «Геокодеру», разработчики наверняка скажут спасибо. И сделали. В статье расскажу, как устроен «Адрес по координатам»: как мы наладили поиск, собрали справочник и упаковали в готовый метод.
Читать дальше →

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

Больше удобств адептам JSON-RPC

Время на прочтение1 мин
Охват и читатели6K
Привет!
image
Однажды, на одном проекте, где мне довелось работать только фронтом, мне пришлось столкнуться не с вездесущим REST, и не с хайповым GraphQL, а со старичком RPC, а именно — его вариантом JSON-RPC 2.0.

И знаете, с тех пор (когда делаю и бэк) я использую почти всегда именно его.

Холиварить не будем, но если вы тоже сторонник использования JSON-RPC, то знаете, что в случае с HTTP смотреть запросы, например в Chrome DevTools / Network, не очень-то и удобно. Эндпоинт у нас почти всегда один, статус всегда 200 (ну, если сервер не завалился вообще). Вывод — нужно расширение к devtools. И вот, небольшой набросок (пулреквесты приветствуются): github.com/kityan/json-rpc-viewer
Полезное и хорошее замержим и обновим версию в сторе, а вообще, форкайте и прикручивайте преферансы и куртизанок по желанию.
Читать дальше →

Укрощаем протоколы доверия – OAuth авторизация с InterSystems IRIS

Время на прочтение11 мин
Охват и читатели4.1K
Как разрешить компьютерам доверять друг другу в ваше отсутствие, сохраняя безопасность и приватность?



— Сухой «мартини». В большом бокале.
— Oui, monsieur. [Да, месье (фр.)]
— Секунду, еще не все. Три пальца «Гордона», один — водки, полпальца «Кины Ликлет». Хорошо взбейте в шейкере, а потом положите большую дольку лимона. Запомнили?

Ян Флеминг, «Казино Рояль», 1953 год

Часть 1. Истории про OAuth 2.0 and OpenID Connect


Универсальная и, похоже, сегодня в XXI веке всеми любимая связка открытых протоколов делегирования доступа и идентификации называется OAuth+OIDC. Лучше для массово использования пока ничего не придумали. Особенно популярны у фронтендеров, потому что гуляют поверх протоколов HTTP(S) и используют контейнер JWT (JSON Web Token). OpenID Connect использует для своей работы OAuth или, по другому говоря, OIDC является обёрткой для OAuth.

OpenID – открытый стандарт для аутентификации и создания систем цифровой идентификации не новинка для разработчиков. В этом 2019 году ему исполняется 14 лет. В нынешней третьей версии полное название OpenID Connect или короче OIDC. Популярен как в вебе и мобильной разработке, так и в корпоративных системах.
Читать дальше →

Тестирование API с использованием Postman и Excel

Время на прочтение4 мин
Охват и читатели52K
Всем привет, я руководитель отдела тестирования, и недавно по работе появилась задача на тестирование API. Для ее решения освоил новый для меня инструмент Postman и JavaScript.

Первоначально на каждый API я писал свои коллекции и готовил тестовые данные в JSON формате. Это достаточно удобно, но при большом количестве тестов и коллекций поддерживать это становится накладно. Да и проводить валидацию данных в JSON не удобно.

Для решения этих проблем я написал макрос для Excel и коллекцию в Postman. Теперь в Postman у меня одна коллекция на все API и стандартный набор функций для обработки входящих данных и валидации возвращаемых результатов. Мне удалось перенести управление тестовыми данными и последовательность выполнения запросов в Excel.

Что было


1. JSON с данными


Раньше тестовый набор хранился в таком виде
Читать дальше →

Проектирование дашбордов для веб-аналитики e-commerce сайта. Часть 4: Youtube-канал

Время на прочтение4 мин
Охват и читатели3.2K
Легко посчитать, сколько трафика пришло с ютуб-канала. К примеру, зайти в счетчик Яндекс Метрики или Google Analytics. А вы попробуйте узнать, что происходило с вашим видео на канале. Кто его посмотрел, кто добавил в фавориты, а кто дислайкнул. Вот для выгрузки таких данных и потребуется скрипт на Python.


Динамика Youtube-активностей
Читать дальше →

Проектирование дашбордов для веб-аналитики e-commerce сайта. Часть 3: SEO-канал

Время на прочтение5 мин
Охват и читатели4.6K
В этой статье соберем дашборд для аналитики SEO-трафика. Данные будем выгружать через скрипты на python и через .csv файлы.

Что будем выгружать?


Для аналитики динамики позиций поисковых фраз потребуется выгрузки из Яндекс.Вебмастера и Google Search Console. Для оценки «полезности» прокачивания позиции поисковой фразы будут полезны данные о частотности. Их можно получить из Яндекс.Директа и Google Ads. Ну а для анализа поведения технической стороны сайта воспользуемся Page Speed Insider.


Динамика SEO-трафика
Читать дальше →

Мы создали плагин в Grafana для мониторинга k8s: уже в официальном Grafana-store

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


Сегодня свершился релиз нового и очень полезного опенсорсного проекта, созданного дирекцией разработки ITSumma — плагина в Grafana для мониторинга Kubernetes. Он включён в официальный графана-стор — grafana.com/grafana/plugins/devopsprodigy-kubegraf-app
Читать дальше →

Первое рабочее место или как начать разработку API на Node.js

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

Введение


В данной статье хотел бы поделиться своими эмоциями и приобретенными навыками в разработке первого REST API на Node.js с использованием TypeScript, как говорится, с нуля. История достаточно банальная: «Закончил университет, получил диплом. Куда же пойти работать?» Как можно было догадаться меня проблема не обошла стороной, пусть думать особо и не пришлось. Позвал к себе на стажировку разработчик (выпускник той же специальности). Полагаю, что это достаточно распространенная практика и существует множество подобных историй. Я, недолго думая, решил попробовать свои силы и пошел…

image

День первый. Знакомство с Node.js


Пришёл я на back-end разработку. В данной IT-компании используют платформу Node.js, с которой я абсолютно не был знаком. Я немного убежал вперед, забыв рассказать читателю, что никогда и ничего не разрабатывал на JavaScript (за исключением пары скриптов с копированным кодом). Алгоритм работы и архитектуру веб-приложений в целом я понимал, так как разрабатывал CRUD на Java, Python и Clojure, но этого было недостаточно. Поэтому первый день я полностью посвятил изучению Node.js, очень помог этот скринкаст.

Параллельно изучая веб-фреймворк Express, менеджер пакетов npm, а также такие файлы как package.json и tsconfig.json, голова просто шла кругом от количества информации. Очередной урок, что усвоение всего материала одновременно задача близкая к невозможной. К концу дня я все же справился с настройкой окружения и смог запустить express веб-сервер! Но радоваться было рано, потому что уходил домой с полным ощущением непонимания. Чувство, что я утопал в огромном мире JS не покидало меня ни на минуту, поэтому необходима была перезагрузка.

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

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